source.bmx 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316
  1. ' Copyright (c) 2007-2022 Bruce A Henderson
  2. ' All rights reserved.
  3. '
  4. ' Redistribution and use in source and binary forms, with or without
  5. ' modification, are permitted provided that the following conditions are met:
  6. ' * Redistributions of source code must retain the above copyright
  7. ' notice, this list of conditions and the following disclaimer.
  8. ' * Redistributions in binary form must reproduce the above copyright
  9. ' notice, this list of conditions and the following disclaimer in the
  10. ' documentation and/or other materials provided with the distribution.
  11. ' * Neither the name of the copyright holder nor the
  12. ' names of its contributors may be used to endorse or promote products
  13. ' derived from this software without specific prior written permission.
  14. '
  15. ' THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
  16. ' EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  17. ' WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  18. ' DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
  19. ' DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  20. ' (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  21. ' LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  22. ' ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  23. ' (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  24. ' SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  25. '
  26. SuperStrict
  27. Import BRL.Blitz
  28. Import Pub.StdC
  29. Import "../core.mod/src/*.hpp"
  30. Import "../core.mod/src/libs/date_time/src/gregorian/*.hpp"
  31. Import "../core.mod/src/libs/date_time/src/gregorian/greg_month.cpp"
  32. Import "../core.mod/src/libs/date_time/src/gregorian/gregorian_types.cpp"
  33. Import "glue.cpp"
  34. Extern
  35. Function bmx_datetime_newdate:Byte Ptr(year:Int, Month:Int, day:Int)
  36. Function bmx_datetime_free(date:Byte Ptr)
  37. Function bmx_datetime_before:Int(myDate:Byte Ptr, yourDate:Byte Ptr)
  38. Function bmx_datetime_after:Int(myDate:Byte Ptr, yourDate:Byte Ptr)
  39. Function bmx_datetime_equals:Int(myDate:Byte Ptr, yourDate:Byte Ptr)
  40. Function bmx_datetime_localday:Byte Ptr()
  41. Function bmx_datetime_universalday:Byte Ptr()
  42. Function bmx_datetime_year:Int(date:Byte Ptr)
  43. Function bmx_datetime_month:Int(date:Byte Ptr)
  44. Function bmx_datetime_day:Int(date:Byte Ptr)
  45. Function bmx_datetime_ymd(date:Byte Ptr, year:Int Ptr, Month:Int Ptr, day:Int Ptr)
  46. Function bmx_datetime_fromstring:Byte Ptr(date:String)
  47. Function bmx_datetime_fromundelimitedstring:Byte Ptr(date:String)
  48. Function bmx_datetime_day_of_week:Int(date:Byte Ptr)
  49. Function bmx_datetime_day_of_year:Int(date:Byte Ptr)
  50. Function bmx_datetime_end_of_month:Byte Ptr(date:Byte Ptr)
  51. Function bmx_datetime_week_number:Int(date:Byte Ptr)
  52. Function bmx_datetime_date_add:Byte Ptr(date:Byte Ptr, duration:Int)
  53. Function bmx_datetime_date_subtract:Byte Ptr(date:Byte Ptr, duration:Int)
  54. Function bmx_datetime_date_subdate:Int(date:Byte Ptr, when:Byte Ptr)
  55. Function bmx_datetime_period_datedate:Byte Ptr(d1:Byte Ptr, d2:Byte Ptr)
  56. Function bmx_datetime_period_withdays:Byte Ptr(date:Byte Ptr, days:Int)
  57. Function bmx_datetime_period_shift(period:Byte Ptr, days:Int)
  58. Function bmx_datetime_period_free(period:Byte Ptr)
  59. Function bmx_datetime_period_begin:Byte Ptr(period:Byte Ptr)
  60. Function bmx_datetime_period_last:Byte Ptr(period:Byte Ptr)
  61. Function bmx_datetime_period_end:Byte Ptr(period:Byte Ptr)
  62. Function bmx_datetime_period_length:Int(period:Byte Ptr)
  63. Function bmx_datetime_to_simple_string:String(date:Byte Ptr)
  64. Function bmx_datetime_period_to_string:String(period:Byte Ptr)
  65. Function bmx_datetime_to_iso_string:String(date:Byte Ptr)
  66. Function bmx_datetime_to_iso_extended_string:String(date:Byte Ptr)
  67. Function bmx_datetime_period_isnull:Int(period:Byte Ptr)
  68. Function bmx_datetime_period_containsdate:Int(p1:Byte Ptr, p2:Byte Ptr)
  69. Function bmx_datetime_period_contains:Int(p1:Byte Ptr, p2:Byte Ptr)
  70. Function bmx_datetime_period_intersects:Int(p1:Byte Ptr, p2:Byte Ptr)
  71. Function bmx_datetime_period_intersection:Byte Ptr(p1:Byte Ptr, p2:Byte Ptr)
  72. Function bmx_datetime_period_adjacent:Int(p1:Byte Ptr, p2:Byte Ptr)
  73. Function bmx_datetime_period_after:Int(p1:Byte Ptr, d:Byte Ptr)
  74. Function bmx_datetime_period_before:Int(p:Byte Ptr, d:Byte Ptr)
  75. Function bmx_datetime_period_merge:Byte Ptr(p1:Byte Ptr, p2:Byte Ptr)
  76. Function bmx_datetime_period_span:Byte Ptr(p1:Byte Ptr, p2:Byte Ptr)
  77. Function bmx_datetime_period_isless:Int(p1:Byte Ptr, p2:Byte Ptr)
  78. Function bmx_datetime_period_isgreater:Int(p1:Byte Ptr, p2:Byte Ptr)
  79. Function bmx_datetime_period_isequal:Int(p1:Byte Ptr, p2:Byte Ptr)
  80. Function bmx_datetime_iter_free(iter:Byte Ptr)
  81. Function bmx_datetime_dayiter:Byte Ptr(date:Byte Ptr, offset:Int)
  82. Function bmx_datetime_monthiter:Byte Ptr(date:Byte Ptr, offset:Int)
  83. Function bmx_datetime_yeariter:Byte Ptr(date:Byte Ptr, offset:Int)
  84. Function bmx_datetime_iter_forward(iter:Byte Ptr)
  85. Function bmx_datetime_iter_backward(iter:Byte Ptr)
  86. Function bmx_datetime_iter_before:Int(myDate:Byte Ptr, yourDate:Byte Ptr)
  87. Function bmx_datetime_iter_after:Int(myDate:Byte Ptr, yourDate:Byte Ptr)
  88. Function bmx_datetime_iter_equals:Int(myDate:Byte Ptr, yourDate:Byte Ptr)
  89. Function bmx_datetime_iter_year:Int(date:Byte Ptr)
  90. Function bmx_datetime_iter_month:Int(date:Byte Ptr)
  91. Function bmx_datetime_iter_day:Int(date:Byte Ptr)
  92. Function bmx_datetime_iter_ymd(date:Byte Ptr, year:Int Ptr, Month:Int Ptr, day:Int Ptr)
  93. Function bmx_datetime_iter_day_of_week:Int(date:Byte Ptr)
  94. Function bmx_datetime_iter_day_of_year:Int(date:Byte Ptr)
  95. Function bmx_datetime_iter_end_of_month:Byte Ptr(date:Byte Ptr)
  96. Function bmx_datetime_iter_week_number:Int(date:Byte Ptr)
  97. Function bmx_datetime_iter_date_add:Byte Ptr(date:Byte Ptr, duration:Int)
  98. Function bmx_datetime_iter_date_subtract:Byte Ptr(date:Byte Ptr, duration:Int)
  99. Function bmx_datetime_iter_date_subdate:Int(date:Byte Ptr, when:Byte Ptr)
  100. Function bmx_datetime_iter_to_simple_string:String(date:Byte Ptr)
  101. Function bmx_datetime_iter_to_iso_string:String(date:Byte Ptr)
  102. Function bmx_datetime_iter_to_iso_extended_string:String(date:Byte Ptr)
  103. Function bmx_datetime_iter_to_string:String(date:Byte Ptr, locale:Byte Ptr, facet:Byte Ptr)
  104. Function bmx_datetime_iter_asformat:String(date:Byte Ptr, f:String, locale:Byte Ptr, facet:Byte Ptr)
  105. Function bmx_time_duration:Byte Ptr(hours:Int, minutes:Int, seconds:Int, fraction:Int)
  106. Function bmx_time_duration_free(duration:Byte Ptr)
  107. Function bmx_time_duration_new_hours:Byte Ptr(value:Int)
  108. Function bmx_time_duration_new_minutes:Byte Ptr(value:Int)
  109. Function bmx_time_duration_new_seconds:Byte Ptr(value:Int)
  110. Function bmx_time_duration_new_milliseconds:Byte Ptr(value:Int)
  111. Function bmx_time_duration_hours:Int(duration:Byte Ptr)
  112. Function bmx_time_duration_minutes:Int(duration:Byte Ptr)
  113. Function bmx_time_duration_seconds:Int(duration:Byte Ptr)
  114. Function bmx_time_duration_total_seconds:Int(duration:Byte Ptr)
  115. Function bmx_time_duration_total_milliseconds:Int(duration:Byte Ptr)
  116. Function bmx_time_duration_fractional_seconds:Int(duration:Byte Ptr)
  117. Function bmx_time_duration_is_negative:Int(duration:Byte Ptr)
  118. Function bmx_time_duration_invert_sign:Byte Ptr(duration:Byte Ptr)
  119. Function bmx_time_duration_to_string:String(duration:Byte Ptr)
  120. Function bmx_time_duration_to_iso_string:String(duration:Byte Ptr)
  121. Function bmx_time_duration_add:Byte Ptr(d1:Byte Ptr, d2:Byte Ptr)
  122. Function bmx_time_duration_subtract:Byte Ptr(d1:Byte Ptr, d2:Byte Ptr)
  123. Function bmx_time_duration_divide:Byte Ptr(duration:Byte Ptr, value:Int)
  124. Function bmx_time_duration_multiply:Byte Ptr(duration:Byte Ptr, value:Int)
  125. Function bmx_time_duration_less:Int(d1:Byte Ptr, d2:Byte Ptr)
  126. Function bmx_time_duration_greater:Int(d1:Byte Ptr, d2:Byte Ptr)
  127. Function bmx_time_duration_equal:Int(d1:Byte Ptr, d2:Byte Ptr)
  128. Function bmx_time_duration_asformat:String(duration:Byte Ptr, f:String, locale:Byte Ptr, facet:Byte Ptr)
  129. Function bmx_time_ticks_per_second:Int()
  130. Function bmx_time_num_fractional_digits:Int()
  131. Function bmx_ptime_new:Byte Ptr(date:Byte Ptr, duration:Byte Ptr)
  132. Function bmx_ptime_free(time:Byte Ptr)
  133. Function bmx_ptime_local_new:Byte Ptr()
  134. Function bmx_ptime_universal_new:Byte Ptr()
  135. Function bmx_ptime_local_microsecond_new:Byte Ptr()
  136. Function bmx_ptime_universal_microsecond_new:Byte Ptr()
  137. Function bmx_ptime_date:Byte Ptr(time:Byte Ptr)
  138. Function bmx_ptime_time_of_day:Byte Ptr(time:Byte Ptr)
  139. Function bmx_ptime_to_string:String(time:Byte Ptr, locale:Byte Ptr, facet:Byte Ptr)
  140. Function bmx_ptime_to_iso_string:String(time:Byte Ptr)
  141. Function bmx_ptime_to_iso_extended_string:String(time:Byte Ptr)
  142. Function bmx_ptime_add_days:Byte Ptr(time:Byte Ptr, days:Int)
  143. Function bmx_ptime_subtract_days:Byte Ptr(time:Byte Ptr, days:Int)
  144. Function bmx_ptime_add_duration:Byte Ptr(time:Byte Ptr, duration:Byte Ptr)
  145. Function bmx_ptime_subtract_duration:Byte Ptr(time:Byte Ptr, duration:Byte Ptr)
  146. Function bmx_ptime_subtract:Byte Ptr(t1:Byte Ptr, t2:Byte Ptr)
  147. Function bmx_ptime_less:Int(t1:Byte Ptr, t2:Byte Ptr)
  148. Function bmx_ptime_greater:Int(t1:Byte Ptr, t2:Byte Ptr)
  149. Function bmx_ptime_equal:Int(t1:Byte Ptr, t2:Byte Ptr)
  150. Function bmx_ptime_from_time_t:Byte Ptr(time:Byte Ptr)
  151. Function bmx_ptime_asformat:String(time:Byte Ptr, f:String, locale:Byte Ptr, facet:Byte Ptr)
  152. Function bmx_partial_date_new:Byte Ptr(day:Int, Month:Int)
  153. Function bmx_partial_date_get_date:Byte Ptr(ybg:Byte Ptr, year:Int)
  154. Function bmx_partial_date_free(ybg:Byte Ptr)
  155. Function bmx_last_day_of_week_in_month_new:Byte Ptr(WeekDay:Int, Month:Int)
  156. Function bmx_last_day_of_week_in_month_get_date:Byte Ptr(ybg:Byte Ptr, year:Int)
  157. Function bmx_last_day_of_week_in_month_free(ybg:Byte Ptr)
  158. Function bmx_first_day_of_week_in_month_new:Byte Ptr(WeekDay:Int, Month:Int)
  159. Function bmx_first_day_of_week_in_month_get_date:Byte Ptr(ybg:Byte Ptr, year:Int)
  160. Function bmx_first_day_of_week_in_month_free(ybg:Byte Ptr)
  161. Function bmx_weekday_to_string:String(WeekDay:Int)
  162. Function bmx_datefacet_new:Byte Ptr()
  163. Function bmx_locale_new:Byte Ptr(facet:Byte Ptr, gen:Byte Ptr, locale:String)
  164. Function bmx_date_asformat:String(date:Byte Ptr, format:String, locale:Byte Ptr, facet:Byte Ptr)
  165. Function bmx_timefacet_new:Byte Ptr()
  166. Function _strlen:Int(s:Byte Ptr) = "strlen"
  167. Function bmx_char_free(s:Byte Ptr)
  168. Function bmx_time_period_timetime:Byte Ptr(beginTime:Byte Ptr, endTime:Byte Ptr)
  169. Function bmx_time_period_withduration:Byte Ptr(beginTime:Byte Ptr, duration:Byte Ptr)
  170. Function bmx_time_period_shift(time:Byte Ptr, duration:Byte Ptr)
  171. Function bmx_time_period_begin:Byte Ptr(time:Byte Ptr)
  172. Function bmx_time_period_free(time:Byte Ptr)
  173. Function bmx_time_period_last:Byte Ptr(time:Byte Ptr)
  174. Function bmx_time_period_end:Byte Ptr(time:Byte Ptr)
  175. Function bmx_time_period_length:Byte Ptr(time:Byte Ptr)
  176. Function bmx_time_period_is_null:Int(time:Byte Ptr)
  177. Function bmx_time_period_contains:Int(tp:Byte Ptr, time:Byte Ptr)
  178. Function bmx_time_period_containsPeriod:Int(tp1:Byte Ptr, tp2:Byte Ptr)
  179. Function bmx_time_period_intersects:Int(tp1:Byte Ptr, tp2:Byte Ptr)
  180. Function bmx_time_period_intersection:Byte Ptr(tp1:Byte Ptr, tp2:Byte Ptr)
  181. Function bmx_time_period_merge:Byte Ptr(tp1:Byte Ptr, tp2:Byte Ptr)
  182. Function bmx_time_period_span:Byte Ptr(tp1:Byte Ptr, tp2:Byte Ptr)
  183. Function bmx_time_period_isless:Int(tp1:Byte Ptr, tp2:Byte Ptr)
  184. Function bmx_time_period_isgreater:Int(tp1:Byte Ptr, tp2:Byte Ptr)
  185. Function bmx_time_period_isequal:Int(tp1:Byte Ptr, tp2:Byte Ptr)
  186. Function bmx_posix_time_zone:Byte Ptr(id:String)
  187. Function bmx_time_zone_dst_zone_abbrev:String(tz:Byte Ptr)
  188. Function bmx_time_zone_std_zone_abbrev:String(tz:Byte Ptr)
  189. Function bmx_time_zone_dst_zone_name:String(tz:Byte Ptr)
  190. Function bmx_time_zone_std_zone_name:String(tz:Byte Ptr)
  191. Function bmx_time_zone_has_dst:Int(tz:Byte Ptr)
  192. Function bmx_time_zone_dst_local_start_time:Byte Ptr(tz:Byte Ptr, year:Int)
  193. Function bmx_time_zone_dst_local_end_time:Byte Ptr(tz:Byte Ptr, year:Int)
  194. Function bmx_time_zone_base_utc_offset:Byte Ptr(tz:Byte Ptr)
  195. Function bmx_time_zone_dst_offset:Byte Ptr(tz:Byte Ptr)
  196. Function bmx_time_zone_to_posix_string:String(tz:Byte Ptr)
  197. Function bmx_time_zone_free(tz:Byte Ptr)
  198. Function bmx_tz_database:Byte Ptr()
  199. Function bmx_tz_load_from_file:Byte Ptr(filename:String)
  200. Function bmx_tz_time_zone_from_region:Byte Ptr(db:Byte Ptr, id:String)
  201. Function bmx_tz_database_free(db:Byte Ptr)
  202. Function bmx_local_date_time_new_sec_clock:Byte Ptr(zone:Byte Ptr)
  203. Function bmx_local_date_time_new_time:Byte Ptr(time:Byte Ptr, zone:Byte Ptr)
  204. Function bmx_month_to_string:String(Month:Int)
  205. Function bmx_date_facet_format(facet:Byte Ptr, fmt:String)
  206. Function bmx_date_facet_set_iso_format(facet:Byte Ptr)
  207. Function bmx_date_facet_set_iso_extended_format(facet:Byte Ptr)
  208. Function bmx_datetime_to_string:String(datetime:Byte Ptr, locale:Byte Ptr, facet:Byte Ptr)
  209. Function bmx_date_facet_short_month_names(facet:Byte Ptr, names:String[])
  210. Function bmx_date_facet_long_month_names(facet:Byte Ptr, names:String[])
  211. Function bmx_date_facet_short_weekday_names(facet:Byte Ptr, names:String[])
  212. Function bmx_date_facet_long_weekday_names(facet:Byte Ptr, names:String[])
  213. Function bmx_date_facet_month_format(facet:Byte Ptr, fmt:String)
  214. Function bmx_date_facet_weekday_format(facet:Byte Ptr, fmt:String)
  215. Function bmx_time_facet_format(facet:Byte Ptr, fmt:String)
  216. Function bmx_time_facet_set_iso_format(facet:Byte Ptr)
  217. Function bmx_time_facet_set_iso_extended_format(facet:Byte Ptr)
  218. Function bmx_time_facet_month_format(facet:Byte Ptr, fmt:String)
  219. Function bmx_time_facet_weekday_format(facet:Byte Ptr, fmt:String)
  220. Function bmx_time_facet_time_duration_format(facet:Byte Ptr, fmt:String)
  221. Function bmx_nth_day_of_week_in_month_new:Byte Ptr(nth:Int, WeekDay:Int, Month:Int)
  222. Function bmx_nth_day_of_week_in_month_get_date:Byte Ptr(ybg:Byte Ptr, year:Int)
  223. Function bmx_nth_day_of_week_in_month_free(ybg:Byte Ptr)
  224. Function bmx_first_day_of_week_after_new:Byte Ptr(WeekDay:Int)
  225. Function bmx_first_day_of_week_after_get_date:Byte Ptr(ybg:Byte Ptr, date:Byte Ptr)
  226. Function bmx_first_day_of_week_after_free(ybg:Byte Ptr)
  227. Function bmx_first_day_of_week_before_new:Byte Ptr(WeekDay:Int)
  228. Function bmx_first_day_of_week_before_get_date:Byte Ptr(ybg:Byte Ptr, date:Byte Ptr)
  229. Function bmx_first_day_of_week_before_free(ybg:Byte Ptr)
  230. Function bmx_days_until_weekday:Int(date:Byte Ptr, WeekDay:Int)
  231. Function bmx_days_before_weekday:Int(date:Byte Ptr, WeekDay:Int)
  232. Function bmx_next_weekday:Byte Ptr(date:Byte Ptr, WeekDay:Int)
  233. Function bmx_previous_weekday:Byte Ptr(date:Byte Ptr, WeekDay:Int)
  234. Function bmx_local_date_time_zone:Byte Ptr(ldt:Byte Ptr)
  235. Function bmx_local_date_time_is_dst:Int(ldt:Byte Ptr)
  236. Function bmx_local_date_time_utc_time:Byte Ptr(ldt:Byte Ptr)
  237. Function bmx_local_date_time_local_time:Byte Ptr(ldt:Byte Ptr)
  238. Function bmx_local_date_time_to_string:String(ldt:Byte Ptr)
  239. Function bmx_local_date_time_less:Int(ldt1:Byte Ptr, ldt2:Byte Ptr)
  240. Function bmx_local_date_time_greater:Int(ldt1:Byte Ptr, ldt2:Byte Ptr)
  241. Function bmx_local_date_time_equal:Int(ldt1:Byte Ptr, ldt2:Byte Ptr)
  242. Function bmx_local_date_time_add_days:Byte Ptr(ldt:Byte Ptr, value:Int)
  243. Function bmx_local_date_time_add_months:Byte Ptr(ldt:Byte Ptr, value:Int)
  244. Function bmx_local_date_time_add_years:Byte Ptr(ldt:Byte Ptr, value:Int)
  245. Function bmx_local_date_time_subtract_days:Byte Ptr(ldt:Byte Ptr, value:Int)
  246. Function bmx_local_date_time_subtract_months:Byte Ptr(ldt:Byte Ptr, value:Int)
  247. Function bmx_local_date_time_subtract_years:Byte Ptr(ldt:Byte Ptr, value:Int)
  248. Function bmx_local_date_time_add_duration:Byte Ptr(ldt:Byte Ptr, duration:Byte Ptr)
  249. Function bmx_local_date_time_subtract_duration:Byte Ptr(ldt:Byte Ptr, duration:Byte Ptr)
  250. Function bmx_local_date_time_free(ldt:Byte Ptr)
  251. Function bmx_local_time_period_new:Byte Ptr(ldt1:Byte Ptr, ldt2:Byte Ptr)
  252. Function bmx_local_time_period_new_duration:Byte Ptr(ldt:Byte Ptr, duration:Byte Ptr)
  253. Function bmx_local_time_period_free(ltp:Byte Ptr)
  254. Function bmx_local_time_period_begin:Byte Ptr(ltp:Byte Ptr)
  255. Function bmx_local_time_period_last:Byte Ptr(ltp:Byte Ptr)
  256. Function bmx_local_time_period_end:Byte Ptr(ltp:Byte Ptr)
  257. Function bmx_local_time_period_length:Byte Ptr(ltp:Byte Ptr)
  258. Function bmx_local_time_period_is_null:Int(ltp:Byte Ptr)
  259. Function bmx_local_time_period_contains_time:Int(ltp:Byte Ptr, time:Byte Ptr)
  260. Function bmx_local_time_period_contains:Int(ltp1:Byte Ptr, ltp2:Byte Ptr)
  261. Function bmx_local_time_period_intersects:Int(ltp1:Byte Ptr, ltp2:Byte Ptr)
  262. Function bmx_local_time_period_intersection:Byte Ptr(ltp1:Byte Ptr, ltp2:Byte Ptr)
  263. Function bmx_local_time_period_merge:Byte Ptr(ltp1:Byte Ptr, ltp2:Byte Ptr)
  264. Function bmx_local_time_period_span:Byte Ptr(ltp1:Byte Ptr, ltp2:Byte Ptr)
  265. Function bmx_local_time_period_shift(ltp:Byte Ptr, duration:Byte Ptr)
  266. Function bmx_local_time_period_less:Int(ltp1:Byte Ptr, ltp2:Byte Ptr)
  267. Function bmx_local_time_period_greater:Int(ltp1:Byte Ptr, ltp2:Byte Ptr)
  268. Function bmx_local_time_period_equal:Int(ltp1:Byte Ptr, ltp2:Byte Ptr)
  269. Function bmx_end_of_month_day:Int(y:Int, m:Int)
  270. End Extern