ricardoo27-writeexcel 0.6.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (245) hide show
  1. data/.document +5 -0
  2. data/.gitattributes +1 -0
  3. data/README.rdoc +136 -0
  4. data/Rakefile +52 -0
  5. data/VERSION +1 -0
  6. data/charts/chartex.rb +316 -0
  7. data/charts/demo1.rb +46 -0
  8. data/charts/demo101.bin +0 -0
  9. data/charts/demo2.rb +65 -0
  10. data/charts/demo201.bin +0 -0
  11. data/charts/demo3.rb +117 -0
  12. data/charts/demo301.bin +0 -0
  13. data/charts/demo4.rb +119 -0
  14. data/charts/demo401.bin +0 -0
  15. data/charts/demo5.rb +48 -0
  16. data/charts/demo501.bin +0 -0
  17. data/examples/a_simple.rb +43 -0
  18. data/examples/autofilter.rb +265 -0
  19. data/examples/bigfile.rb +30 -0
  20. data/examples/chart_area.rb +121 -0
  21. data/examples/chart_bar.rb +120 -0
  22. data/examples/chart_column.rb +120 -0
  23. data/examples/chart_line.rb +120 -0
  24. data/examples/chart_pie.rb +108 -0
  25. data/examples/chart_scatter.rb +121 -0
  26. data/examples/chart_stock.rb +148 -0
  27. data/examples/chess.rb +142 -0
  28. data/examples/colors.rb +129 -0
  29. data/examples/comments1.rb +27 -0
  30. data/examples/comments2.rb +352 -0
  31. data/examples/copyformat.rb +52 -0
  32. data/examples/data_validate.rb +279 -0
  33. data/examples/date_time.rb +87 -0
  34. data/examples/defined_name.rb +32 -0
  35. data/examples/demo.rb +124 -0
  36. data/examples/diag_border.rb +36 -0
  37. data/examples/formats.rb +490 -0
  38. data/examples/formula_result.rb +30 -0
  39. data/examples/header.rb +137 -0
  40. data/examples/hide_sheet.rb +29 -0
  41. data/examples/hyperlink.rb +43 -0
  42. data/examples/images.rb +63 -0
  43. data/examples/indent.rb +31 -0
  44. data/examples/merge1.rb +40 -0
  45. data/examples/merge2.rb +45 -0
  46. data/examples/merge3.rb +66 -0
  47. data/examples/merge4.rb +83 -0
  48. data/examples/merge5.rb +80 -0
  49. data/examples/merge6.rb +67 -0
  50. data/examples/outline.rb +255 -0
  51. data/examples/outline_collapsed.rb +209 -0
  52. data/examples/panes.rb +113 -0
  53. data/examples/password_protection.rb +33 -0
  54. data/examples/properties.rb +34 -0
  55. data/examples/properties_jp.rb +33 -0
  56. data/examples/protection.rb +47 -0
  57. data/examples/regions.rb +53 -0
  58. data/examples/repeat.rb +43 -0
  59. data/examples/republic.png +0 -0
  60. data/examples/right_to_left.rb +27 -0
  61. data/examples/row_wrap.rb +53 -0
  62. data/examples/set_first_sheet.rb +14 -0
  63. data/examples/stats.rb +74 -0
  64. data/examples/stocks.rb +81 -0
  65. data/examples/store_formula.rb +15 -0
  66. data/examples/tab_colors.rb +31 -0
  67. data/examples/utf8.rb +15 -0
  68. data/examples/write_arrays.rb +83 -0
  69. data/html/en/doc_en.html +5946 -0
  70. data/html/images/a_simple.jpg +0 -0
  71. data/html/images/area1.jpg +0 -0
  72. data/html/images/bar1.jpg +0 -0
  73. data/html/images/chart_area.xls +0 -0
  74. data/html/images/column1.jpg +0 -0
  75. data/html/images/data_validation.jpg +0 -0
  76. data/html/images/line1.jpg +0 -0
  77. data/html/images/pie1.jpg +0 -0
  78. data/html/images/regions.jpg +0 -0
  79. data/html/images/scatter1.jpg +0 -0
  80. data/html/images/stats.jpg +0 -0
  81. data/html/images/stock1.jpg +0 -0
  82. data/html/images/stocks.jpg +0 -0
  83. data/html/index.html +16 -0
  84. data/html/style.css +433 -0
  85. data/lib/writeexcel.rb +1159 -0
  86. data/lib/writeexcel/biffwriter.rb +223 -0
  87. data/lib/writeexcel/caller_info.rb +12 -0
  88. data/lib/writeexcel/cell_range.rb +332 -0
  89. data/lib/writeexcel/chart.rb +1968 -0
  90. data/lib/writeexcel/charts/area.rb +154 -0
  91. data/lib/writeexcel/charts/bar.rb +177 -0
  92. data/lib/writeexcel/charts/column.rb +156 -0
  93. data/lib/writeexcel/charts/external.rb +66 -0
  94. data/lib/writeexcel/charts/line.rb +154 -0
  95. data/lib/writeexcel/charts/pie.rb +169 -0
  96. data/lib/writeexcel/charts/scatter.rb +192 -0
  97. data/lib/writeexcel/charts/stock.rb +213 -0
  98. data/lib/writeexcel/col_info.rb +87 -0
  99. data/lib/writeexcel/colors.rb +68 -0
  100. data/lib/writeexcel/comments.rb +460 -0
  101. data/lib/writeexcel/compatibility.rb +65 -0
  102. data/lib/writeexcel/convert_date_time.rb +117 -0
  103. data/lib/writeexcel/data_validations.rb +370 -0
  104. data/lib/writeexcel/debug_info.rb +41 -0
  105. data/lib/writeexcel/embedded_chart.rb +35 -0
  106. data/lib/writeexcel/excelformula.y +139 -0
  107. data/lib/writeexcel/excelformulaparser.rb +587 -0
  108. data/lib/writeexcel/format.rb +1575 -0
  109. data/lib/writeexcel/formula.rb +987 -0
  110. data/lib/writeexcel/helper.rb +78 -0
  111. data/lib/writeexcel/image.rb +218 -0
  112. data/lib/writeexcel/olewriter.rb +305 -0
  113. data/lib/writeexcel/outline.rb +24 -0
  114. data/lib/writeexcel/properties.rb +242 -0
  115. data/lib/writeexcel/shared_string_table.rb +153 -0
  116. data/lib/writeexcel/storage_lite.rb +984 -0
  117. data/lib/writeexcel/workbook.rb +2478 -0
  118. data/lib/writeexcel/worksheet.rb +6925 -0
  119. data/lib/writeexcel/worksheets.rb +25 -0
  120. data/lib/writeexcel/write_file.rb +63 -0
  121. data/test/excelfile/Chart1.xls +0 -0
  122. data/test/excelfile/Chart2.xls +0 -0
  123. data/test/excelfile/Chart3.xls +0 -0
  124. data/test/excelfile/Chart4.xls +0 -0
  125. data/test/excelfile/Chart5.xls +0 -0
  126. data/test/helper.rb +31 -0
  127. data/test/perl_output/Chart1.xls.data +0 -0
  128. data/test/perl_output/Chart2.xls.data +0 -0
  129. data/test/perl_output/Chart3.xls.data +0 -0
  130. data/test/perl_output/Chart4.xls.data +0 -0
  131. data/test/perl_output/Chart5.xls.data +0 -0
  132. data/test/perl_output/README +31 -0
  133. data/test/perl_output/a_simple.xls +0 -0
  134. data/test/perl_output/autofilter.xls +0 -0
  135. data/test/perl_output/biff_add_continue_testdata +0 -0
  136. data/test/perl_output/chart_area.xls +0 -0
  137. data/test/perl_output/chart_bar.xls +0 -0
  138. data/test/perl_output/chart_column.xls +0 -0
  139. data/test/perl_output/chart_line.xls +0 -0
  140. data/test/perl_output/chess.xls +0 -0
  141. data/test/perl_output/colors.xls +0 -0
  142. data/test/perl_output/comments0.xls +0 -0
  143. data/test/perl_output/comments1.xls +0 -0
  144. data/test/perl_output/comments2.xls +0 -0
  145. data/test/perl_output/data_validate.xls +0 -0
  146. data/test/perl_output/date_time.xls +0 -0
  147. data/test/perl_output/defined_name.xls +0 -0
  148. data/test/perl_output/demo.xls +0 -0
  149. data/test/perl_output/demo101.bin +0 -0
  150. data/test/perl_output/demo201.bin +0 -0
  151. data/test/perl_output/demo301.bin +0 -0
  152. data/test/perl_output/demo401.bin +0 -0
  153. data/test/perl_output/demo501.bin +0 -0
  154. data/test/perl_output/diag_border.xls +0 -0
  155. data/test/perl_output/f_font_biff +0 -0
  156. data/test/perl_output/f_font_key +1 -0
  157. data/test/perl_output/f_xf_biff +0 -0
  158. data/test/perl_output/file_font_biff +0 -0
  159. data/test/perl_output/file_font_key +1 -0
  160. data/test/perl_output/file_xf_biff +0 -0
  161. data/test/perl_output/formula_result.xls +0 -0
  162. data/test/perl_output/headers.xls +0 -0
  163. data/test/perl_output/hidden.xls +0 -0
  164. data/test/perl_output/hide_zero.xls +0 -0
  165. data/test/perl_output/hyperlink.xls +0 -0
  166. data/test/perl_output/images.xls +0 -0
  167. data/test/perl_output/indent.xls +0 -0
  168. data/test/perl_output/merge1.xls +0 -0
  169. data/test/perl_output/merge2.xls +0 -0
  170. data/test/perl_output/merge3.xls +0 -0
  171. data/test/perl_output/merge4.xls +0 -0
  172. data/test/perl_output/merge5.xls +0 -0
  173. data/test/perl_output/merge6.xls +0 -0
  174. data/test/perl_output/ole_write_header +0 -0
  175. data/test/perl_output/outline.xls +0 -0
  176. data/test/perl_output/outline_collapsed.xls +0 -0
  177. data/test/perl_output/panes.xls +0 -0
  178. data/test/perl_output/password_protection.xls +0 -0
  179. data/test/perl_output/protection.xls +0 -0
  180. data/test/perl_output/regions.xls +0 -0
  181. data/test/perl_output/right_to_left.xls +0 -0
  182. data/test/perl_output/set_first_sheet.xls +0 -0
  183. data/test/perl_output/stats.xls +0 -0
  184. data/test/perl_output/stocks.xls +0 -0
  185. data/test/perl_output/store_formula.xls +0 -0
  186. data/test/perl_output/tab_colors.xls +0 -0
  187. data/test/perl_output/unicode_cyrillic.xls +0 -0
  188. data/test/perl_output/utf8.xls +0 -0
  189. data/test/perl_output/workbook1.xls +0 -0
  190. data/test/perl_output/workbook2.xls +0 -0
  191. data/test/perl_output/ws_colinfo +1 -0
  192. data/test/perl_output/ws_store_colinfo +0 -0
  193. data/test/perl_output/ws_store_dimensions +0 -0
  194. data/test/perl_output/ws_store_filtermode +0 -0
  195. data/test/perl_output/ws_store_filtermode_off +0 -0
  196. data/test/perl_output/ws_store_filtermode_on +0 -0
  197. data/test/perl_output/ws_store_selection +0 -0
  198. data/test/perl_output/ws_store_window2 +1 -0
  199. data/test/republic.png +0 -0
  200. data/test/test_00_IEEE_double.rb +13 -0
  201. data/test/test_01_add_worksheet.rb +10 -0
  202. data/test/test_02_merge_formats.rb +49 -0
  203. data/test/test_04_dimensions.rb +388 -0
  204. data/test/test_05_rows.rb +175 -0
  205. data/test/test_06_extsst.rb +74 -0
  206. data/test/test_11_date_time.rb +475 -0
  207. data/test/test_12_date_only.rb +525 -0
  208. data/test/test_13_date_seconds.rb +477 -0
  209. data/test/test_21_escher.rb +624 -0
  210. data/test/test_22_mso_drawing_group.rb +741 -0
  211. data/test/test_23_note.rb +57 -0
  212. data/test/test_24_txo.rb +74 -0
  213. data/test/test_25_position_object.rb +80 -0
  214. data/test/test_26_autofilter.rb +309 -0
  215. data/test/test_27_autofilter.rb +126 -0
  216. data/test/test_28_autofilter.rb +156 -0
  217. data/test/test_29_process_jpg.rb +670 -0
  218. data/test/test_30_validation_dval.rb +74 -0
  219. data/test/test_31_validation_dv_strings.rb +123 -0
  220. data/test/test_32_validation_dv_formula.rb +203 -0
  221. data/test/test_40_property_types.rb +188 -0
  222. data/test/test_41_properties.rb +235 -0
  223. data/test/test_42_set_properties.rb +434 -0
  224. data/test/test_50_name_stored.rb +295 -0
  225. data/test/test_51_name_print_area.rb +353 -0
  226. data/test/test_52_name_print_titles.rb +450 -0
  227. data/test/test_53_autofilter.rb +199 -0
  228. data/test/test_60_chart_generic.rb +574 -0
  229. data/test/test_61_chart_subclasses.rb +84 -0
  230. data/test/test_62_chart_formats.rb +268 -0
  231. data/test/test_63_chart_area_formats.rb +645 -0
  232. data/test/test_biff.rb +71 -0
  233. data/test/test_big_workbook.rb +17 -0
  234. data/test/test_compatibility.rb +12 -0
  235. data/test/test_example_match.rb +3246 -0
  236. data/test/test_format.rb +1189 -0
  237. data/test/test_formula.rb +61 -0
  238. data/test/test_ole.rb +102 -0
  239. data/test/test_storage_lite.rb +116 -0
  240. data/test/test_workbook.rb +146 -0
  241. data/test/test_worksheet.rb +106 -0
  242. data/utils/add_magic_comment.rb +80 -0
  243. data/writeexcel.gemspec +278 -0
  244. data/writeexcel.rdoc +1425 -0
  245. metadata +292 -0
@@ -0,0 +1,525 @@
1
+ # -*- coding: utf-8 -*-
2
+ ###############################################################################
3
+ #
4
+ # A test for WriteExcel.
5
+ #
6
+ # Tests date and time handling. Tests dates in 1900 and 1904 format.
7
+ #
8
+ # reverse('©'), May 2004, John McNamara, jmcnamara@cpan.org
9
+ #
10
+ # original written in Perl by John McNamara
11
+ # converted to Ruby by Hideo Nakamura, cxn03651@msj.biglobe.ne.jp
12
+ #
13
+ ############################################################################
14
+ require 'helper'
15
+ require 'stringio'
16
+
17
+ class ForTest
18
+ include ConvertDateTime
19
+ end
20
+
21
+ class TC_data_only < Test::Unit::TestCase
22
+
23
+ def setup
24
+ @obj = ForTest.new
25
+ end
26
+
27
+ def test_the_dates_generated_by_excel_1900
28
+ data_generated_excel_1900.each_line do |line|
29
+ line = line.sub(/^\s*/,'')
30
+ braak if line =~ /^\s*# stop/ # For debugging
31
+
32
+ next unless line =~ /\S/ # Ignore blank lines
33
+ next if line =~ /^\s*#/ # Ignore comments
34
+
35
+ result, number, date = analyze(line)
36
+ assert_equal(result.to_i, number,
37
+ "Testing convert_date_time: #{date} #{result}")
38
+ end
39
+ end
40
+
41
+ def test_the_dates_generated_by_excel_1904
42
+ data_generated_excel_1904.each_line do |line|
43
+ line = line.sub(/^\s*/,'')
44
+ braak if line =~ /^\s*# stop/ # For debugging
45
+
46
+ next unless line =~ /\S/ # Ignore blank lines
47
+ next if line =~ /^\s*#/ # Ignore comments
48
+ result, number, date = analyze(line, true)
49
+ assert_equal(result.to_i, number,
50
+ "Testing convert_date_time: #{date} #{result}")
51
+ end
52
+ end
53
+
54
+ def analyze(line, date_1904 = false)
55
+ count, date, result = line.split(/\s+/)
56
+ count = count.to_i
57
+ number = @obj.convert_date_time(date, date_1904)
58
+ number = -1 if number.nil?
59
+ [result, number, date]
60
+ end
61
+
62
+ def data_generated_excel_1904
63
+
64
+ return <<-__DATA_END__
65
+
66
+ #
67
+ # The following data was generated by Excel.
68
+ #
69
+
70
+ #
71
+ # Excel 1904 date system
72
+ #
73
+ 201 1904-01-01T 0
74
+ 202 1904-01-31T 30
75
+ 203 1904-02-01T 31
76
+ 204 1904-02-29T 59
77
+ 205 1904-03-01T 60
78
+ 206 1904-03-31T 90
79
+ 207 1904-04-01T 91
80
+ 208 1904-04-30T 120
81
+ 209 1904-05-01T 121
82
+ 210 1904-05-31T 151
83
+ 211 1904-06-01T 152
84
+ 212 1904-06-30T 181
85
+ 213 1904-07-01T 182
86
+ 214 1904-07-31T 212
87
+ 215 1904-08-01T 213
88
+ 216 1904-08-31T 243
89
+ 217 1904-09-01T 244
90
+ 218 1904-09-30T 273
91
+ 219 1904-10-01T 274
92
+ 220 1904-10-31T 304
93
+ 221 1904-11-01T 305
94
+ 222 1904-11-30T 334
95
+ 223 1904-12-01T 335
96
+ 224 1904-12-31T 365
97
+ 225 1907-02-27T 1153
98
+ 226 1907-02-28T 1154
99
+ 227 1907-03-01T 1155
100
+ 228 1907-03-02T 1156
101
+ 229 1907-03-03T 1157
102
+ 230 1907-03-04T 1158
103
+ 231 1907-03-05T 1159
104
+ 232 1907-03-06T 1160
105
+ 233 1999-01-01T 34699
106
+ 234 1999-01-31T 34729
107
+ 235 1999-02-01T 34730
108
+ 236 1999-02-28T 34757
109
+ 237 1999-03-01T 34758
110
+ 238 1999-03-31T 34788
111
+ 239 1999-04-01T 34789
112
+ 240 1999-04-30T 34818
113
+ 241 1999-05-01T 34819
114
+ 242 1999-05-31T 34849
115
+ 243 1999-06-01T 34850
116
+ 244 1999-06-30T 34879
117
+ 245 1999-07-01T 34880
118
+ 246 1999-07-31T 34910
119
+ 247 1999-08-01T 34911
120
+ 248 1999-08-31T 34941
121
+ 249 1999-09-01T 34942
122
+ 250 1999-09-30T 34971
123
+ 251 1999-10-01T 34972
124
+ 252 1999-10-31T 35002
125
+ 253 1999-11-01T 35003
126
+ 254 1999-11-30T 35032
127
+ 255 1999-12-01T 35033
128
+ 256 1999-12-31T 35063
129
+ 257 2000-01-01T 35064
130
+ 258 2000-01-31T 35094
131
+ 259 2000-02-01T 35095
132
+ 260 2000-02-29T 35123
133
+ 261 2000-03-01T 35124
134
+ 262 2000-03-31T 35154
135
+ 263 2000-04-01T 35155
136
+ 264 2000-04-30T 35184
137
+ 265 2000-05-01T 35185
138
+ 266 2000-05-31T 35215
139
+ 267 2000-06-01T 35216
140
+ 268 2000-06-30T 35245
141
+ 269 2000-07-01T 35246
142
+ 270 2000-07-31T 35276
143
+ 271 2000-08-01T 35277
144
+ 272 2000-08-31T 35307
145
+ 273 2000-09-01T 35308
146
+ 274 2000-09-30T 35337
147
+ 275 2000-10-01T 35338
148
+ 276 2000-10-31T 35368
149
+ 277 2000-11-01T 35369
150
+ 278 2000-11-30T 35398
151
+ 279 2000-12-01T 35399
152
+ 280 2000-12-31T 35429
153
+ 281 2001-01-01T 35430
154
+ 282 2001-01-31T 35460
155
+ 283 2001-02-01T 35461
156
+ 284 2001-02-28T 35488
157
+ 285 2001-03-01T 35489
158
+ 286 2001-03-31T 35519
159
+ 287 2001-04-01T 35520
160
+ 288 2001-04-30T 35549
161
+ 289 2001-05-01T 35550
162
+ 290 2001-05-31T 35580
163
+ 291 2001-06-01T 35581
164
+ 292 2001-06-30T 35610
165
+ 293 2001-07-01T 35611
166
+ 294 2001-07-31T 35641
167
+ 295 2001-08-01T 35642
168
+ 296 2001-08-31T 35672
169
+ 297 2001-09-01T 35673
170
+ 298 2001-09-30T 35702
171
+ 299 2001-10-01T 35703
172
+ 300 2001-10-31T 35733
173
+ 301 2001-11-01T 35734
174
+ 302 2001-11-30T 35763
175
+ 303 2001-12-01T 35764
176
+ 304 2001-12-31T 35794
177
+ 305 2400-01-01T 181161
178
+ 306 2400-01-31T 181191
179
+ 307 2400-02-01T 181192
180
+ 308 2400-02-29T 181220
181
+ 309 2400-03-01T 181221
182
+ 310 2400-03-31T 181251
183
+ 311 2400-04-01T 181252
184
+ 312 2400-04-30T 181281
185
+ 313 2400-05-01T 181282
186
+ 314 2400-05-31T 181312
187
+ 315 2400-06-01T 181313
188
+ 316 2400-06-30T 181342
189
+ 317 2400-07-01T 181343
190
+ 318 2400-07-31T 181373
191
+ 319 2400-08-01T 181374
192
+ 320 2400-08-31T 181404
193
+ 321 2400-09-01T 181405
194
+ 322 2400-09-30T 181434
195
+ 323 2400-10-01T 181435
196
+ 324 2400-10-31T 181465
197
+ 325 2400-11-01T 181466
198
+ 326 2400-11-30T 181495
199
+ 327 2400-12-01T 181496
200
+ 328 2400-12-31T 181526
201
+ 329 4000-01-01T 765549
202
+ 330 4000-01-31T 765579
203
+ 331 4000-02-01T 765580
204
+ 332 4000-02-29T 765608
205
+ 333 4000-03-01T 765609
206
+ 334 4000-03-31T 765639
207
+ 335 4000-04-01T 765640
208
+ 336 4000-04-30T 765669
209
+ 337 4000-05-01T 765670
210
+ 338 4000-05-31T 765700
211
+ 339 4000-06-01T 765701
212
+ 340 4000-06-30T 765730
213
+ 341 4000-07-01T 765731
214
+ 342 4000-07-31T 765761
215
+ 343 4000-08-01T 765762
216
+ 344 4000-08-31T 765792
217
+ 345 4000-09-01T 765793
218
+ 346 4000-09-30T 765822
219
+ 347 4000-10-01T 765823
220
+ 348 4000-10-31T 765853
221
+ 349 4000-11-01T 765854
222
+ 350 4000-11-30T 765883
223
+ 351 4000-12-01T 765884
224
+ 352 4000-12-31T 765914
225
+ 353 4321-01-01T 882792
226
+ 354 4321-01-31T 882822
227
+ 355 4321-02-01T 882823
228
+ 356 4321-02-28T 882850
229
+ 357 4321-03-01T 882851
230
+ 358 4321-03-31T 882881
231
+ 359 4321-04-01T 882882
232
+ 360 4321-04-30T 882911
233
+ 361 4321-05-01T 882912
234
+ 362 4321-05-31T 882942
235
+ 363 4321-06-01T 882943
236
+ 364 4321-06-30T 882972
237
+ 365 4321-07-01T 882973
238
+ 366 4321-07-31T 883003
239
+ 367 4321-08-01T 883004
240
+ 368 4321-08-31T 883034
241
+ 369 4321-09-01T 883035
242
+ 370 4321-09-30T 883064
243
+ 371 4321-10-01T 883065
244
+ 372 4321-10-31T 883095
245
+ 373 4321-11-01T 883096
246
+ 374 4321-11-30T 883125
247
+ 375 4321-12-01T 883126
248
+ 376 4321-12-31T 883156
249
+ 377 9999-01-01T 2956639
250
+ 378 9999-01-31T 2956669
251
+ 379 9999-02-01T 2956670
252
+ 380 9999-02-28T 2956697
253
+ 381 9999-03-01T 2956698
254
+ 382 9999-03-31T 2956728
255
+ 383 9999-04-01T 2956729
256
+ 384 9999-04-30T 2956758
257
+ 385 9999-05-01T 2956759
258
+ 386 9999-05-31T 2956789
259
+ 387 9999-06-01T 2956790
260
+ 388 9999-06-30T 2956819
261
+ 389 9999-07-01T 2956820
262
+ 390 9999-07-31T 2956850
263
+ 391 9999-08-01T 2956851
264
+ 392 9999-08-31T 2956881
265
+ 393 9999-09-01T 2956882
266
+ 394 9999-09-30T 2956911
267
+ 395 9999-10-01T 2956912
268
+ 396 9999-10-31T 2956942
269
+ 397 9999-11-01T 2956943
270
+ 398 9999-11-30T 2956972
271
+ 399 9999-12-01T 2956973
272
+ 400 9999-12-31T 2957003
273
+
274
+
275
+ #
276
+ # The following dates are invalid.
277
+ #
278
+
279
+ 411 1899-12-31T -1 # Below year range.
280
+ 412 1900-01-01T -1 # Below year range.
281
+ 413 1903-12-31T -1 # Below year range.
282
+ 414 2001-02-29T -1 # False leap-day.
283
+ 415 2000-00-00T -1 # No month or day.
284
+ 416 2000-01-00T -1 # No day.
285
+ 417 2000-00-01T -1 # No month.
286
+ 418 2000-13-01T -1 # Month out of range.
287
+ 419 2000-12-32T -1 # Day out of range.
288
+ 420 10000-01-01T -1 # Year out of range.
289
+
290
+ __DATA_END__
291
+
292
+ end
293
+
294
+ def data_generated_excel_1900
295
+
296
+ return <<-__DATA_END__
297
+
298
+ #
299
+ # The following data was generated by Excel.
300
+ #
301
+
302
+ #
303
+ # Excel 1900 date system
304
+ #
305
+ 1 1899-12-31T 0
306
+ 2 1900-01-00T 0
307
+ 3 1900-01-01T 1
308
+ 4 1900-02-27T 58
309
+ 5 1900-02-28T 59
310
+ 6 1900-02-29T 60
311
+ 7 1900-03-01T 61
312
+ 8 1900-03-02T 62
313
+ 9 1900-03-11T 71
314
+ 10 1900-04-08T 99
315
+ 11 1900-09-12T 256
316
+ 12 1901-05-03T 489
317
+ 13 1901-10-13T 652
318
+ 14 1902-02-15T 777
319
+ 15 1902-06-06T 888
320
+ 16 1902-09-25T 999
321
+ 17 1902-09-27T 1001
322
+ 18 1903-04-26T 1212
323
+ 19 1903-08-05T 1313
324
+ 20 1903-12-31T 1461
325
+ 21 1904-01-01T 1462
326
+ 22 1904-02-28T 1520
327
+ 23 1904-02-29T 1521
328
+ 24 1904-03-01T 1522
329
+ 25 1907-02-27T 2615
330
+ 26 1907-02-28T 2616
331
+ 27 1907-03-01T 2617
332
+ 28 1907-03-02T 2618
333
+ 29 1907-03-03T 2619
334
+ 30 1907-03-04T 2620
335
+ 31 1907-03-05T 2621
336
+ 32 1907-03-06T 2622
337
+ 33 1999-01-01T 36161
338
+ 34 1999-01-31T 36191
339
+ 35 1999-02-01T 36192
340
+ 36 1999-02-28T 36219
341
+ 37 1999-03-01T 36220
342
+ 38 1999-03-31T 36250
343
+ 39 1999-04-01T 36251
344
+ 40 1999-04-30T 36280
345
+ 41 1999-05-01T 36281
346
+ 42 1999-05-31T 36311
347
+ 43 1999-06-01T 36312
348
+ 44 1999-06-30T 36341
349
+ 45 1999-07-01T 36342
350
+ 46 1999-07-31T 36372
351
+ 47 1999-08-01T 36373
352
+ 48 1999-08-31T 36403
353
+ 49 1999-09-01T 36404
354
+ 50 1999-09-30T 36433
355
+ 51 1999-10-01T 36434
356
+ 52 1999-10-31T 36464
357
+ 53 1999-11-01T 36465
358
+ 54 1999-11-30T 36494
359
+ 55 1999-12-01T 36495
360
+ 56 1999-12-31T 36525
361
+ 57 2000-01-01T 36526
362
+ 58 2000-01-31T 36556
363
+ 59 2000-02-01T 36557
364
+ 60 2000-02-29T 36585
365
+ 61 2000-03-01T 36586
366
+ 62 2000-03-31T 36616
367
+ 63 2000-04-01T 36617
368
+ 64 2000-04-30T 36646
369
+ 65 2000-05-01T 36647
370
+ 66 2000-05-31T 36677
371
+ 67 2000-06-01T 36678
372
+ 68 2000-06-30T 36707
373
+ 69 2000-07-01T 36708
374
+ 70 2000-07-31T 36738
375
+ 71 2000-08-01T 36739
376
+ 72 2000-08-31T 36769
377
+ 73 2000-09-01T 36770
378
+ 74 2000-09-30T 36799
379
+ 75 2000-10-01T 36800
380
+ 76 2000-10-31T 36830
381
+ 77 2000-11-01T 36831
382
+ 78 2000-11-30T 36860
383
+ 79 2000-12-01T 36861
384
+ 80 2000-12-31T 36891
385
+ 81 2001-01-01T 36892
386
+ 82 2001-01-31T 36922
387
+ 83 2001-02-01T 36923
388
+ 84 2001-02-28T 36950
389
+ 85 2001-03-01T 36951
390
+ 86 2001-03-31T 36981
391
+ 87 2001-04-01T 36982
392
+ 88 2001-04-30T 37011
393
+ 89 2001-05-01T 37012
394
+ 90 2001-05-31T 37042
395
+ 91 2001-06-01T 37043
396
+ 92 2001-06-30T 37072
397
+ 93 2001-07-01T 37073
398
+ 94 2001-07-31T 37103
399
+ 95 2001-08-01T 37104
400
+ 96 2001-08-31T 37134
401
+ 97 2001-09-01T 37135
402
+ 98 2001-09-30T 37164
403
+ 99 2001-10-01T 37165
404
+ 100 2001-10-31T 37195
405
+ 101 2001-11-01T 37196
406
+ 102 2001-11-30T 37225
407
+ 103 2001-12-01T 37226
408
+ 104 2001-12-31T 37256
409
+ 105 2400-01-01T 182623
410
+ 106 2400-01-31T 182653
411
+ 107 2400-02-01T 182654
412
+ 108 2400-02-29T 182682
413
+ 109 2400-03-01T 182683
414
+ 110 2400-03-31T 182713
415
+ 111 2400-04-01T 182714
416
+ 112 2400-04-30T 182743
417
+ 113 2400-05-01T 182744
418
+ 114 2400-05-31T 182774
419
+ 115 2400-06-01T 182775
420
+ 116 2400-06-30T 182804
421
+ 117 2400-07-01T 182805
422
+ 118 2400-07-31T 182835
423
+ 119 2400-08-01T 182836
424
+ 120 2400-08-31T 182866
425
+ 121 2400-09-01T 182867
426
+ 122 2400-09-30T 182896
427
+ 123 2400-10-01T 182897
428
+ 124 2400-10-31T 182927
429
+ 125 2400-11-01T 182928
430
+ 126 2400-11-30T 182957
431
+ 127 2400-12-01T 182958
432
+ 128 2400-12-31T 182988
433
+ 129 4000-01-01T 767011
434
+ 130 4000-01-31T 767041
435
+ 131 4000-02-01T 767042
436
+ 132 4000-02-29T 767070
437
+ 133 4000-03-01T 767071
438
+ 134 4000-03-31T 767101
439
+ 135 4000-04-01T 767102
440
+ 136 4000-04-30T 767131
441
+ 137 4000-05-01T 767132
442
+ 138 4000-05-31T 767162
443
+ 139 4000-06-01T 767163
444
+ 140 4000-06-30T 767192
445
+ 141 4000-07-01T 767193
446
+ 142 4000-07-31T 767223
447
+ 143 4000-08-01T 767224
448
+ 144 4000-08-31T 767254
449
+ 145 4000-09-01T 767255
450
+ 146 4000-09-30T 767284
451
+ 147 4000-10-01T 767285
452
+ 148 4000-10-31T 767315
453
+ 149 4000-11-01T 767316
454
+ 150 4000-11-30T 767345
455
+ 151 4000-12-01T 767346
456
+ 152 4000-12-31T 767376
457
+ 153 4321-01-01T 884254
458
+ 154 4321-01-31T 884284
459
+ 155 4321-02-01T 884285
460
+ 156 4321-02-28T 884312
461
+ 157 4321-03-01T 884313
462
+ 158 4321-03-31T 884343
463
+ 159 4321-04-01T 884344
464
+ 160 4321-04-30T 884373
465
+ 161 4321-05-01T 884374
466
+ 162 4321-05-31T 884404
467
+ 163 4321-06-01T 884405
468
+ 164 4321-06-30T 884434
469
+ 165 4321-07-01T 884435
470
+ 166 4321-07-31T 884465
471
+ 167 4321-08-01T 884466
472
+ 168 4321-08-31T 884496
473
+ 169 4321-09-01T 884497
474
+ 170 4321-09-30T 884526
475
+ 171 4321-10-01T 884527
476
+ 172 4321-10-31T 884557
477
+ 173 4321-11-01T 884558
478
+ 174 4321-11-30T 884587
479
+ 175 4321-12-01T 884588
480
+ 176 4321-12-31T 884618
481
+ 177 9999-01-01T 2958101
482
+ 178 9999-01-31T 2958131
483
+ 179 9999-02-01T 2958132
484
+ 180 9999-02-28T 2958159
485
+ 181 9999-03-01T 2958160
486
+ 182 9999-03-31T 2958190
487
+ 183 9999-04-01T 2958191
488
+ 184 9999-04-30T 2958220
489
+ 185 9999-05-01T 2958221
490
+ 186 9999-05-31T 2958251
491
+ 187 9999-06-01T 2958252
492
+ 188 9999-06-30T 2958281
493
+ 189 9999-07-01T 2958282
494
+ 190 9999-07-31T 2958312
495
+ 191 9999-08-01T 2958313
496
+ 192 9999-08-31T 2958343
497
+ 193 9999-09-01T 2958344
498
+ 194 9999-09-30T 2958373
499
+ 195 9999-10-01T 2958374
500
+ 196 9999-10-31T 2958404
501
+ 197 9999-11-01T 2958405
502
+ 198 9999-11-30T 2958434
503
+ 199 9999-12-01T 2958435
504
+ 200 9999-12-31T 2958465
505
+
506
+ #
507
+ # The following dates are invalid.
508
+ #
509
+
510
+ 401 0000-12-30T -1 # Below year range.
511
+ 402 1000-12-30T -1 # Below year range.
512
+ 403 1899-12-30T -1 # Below year range.
513
+ 404 2002-02-29T -1 # False leap-day.
514
+ 405 2000-00-00T -1 # No month or day.
515
+ 406 2000-01-00T -1 # No day.
516
+ 407 2000-00-01T -1 # No month.
517
+ 408 2000-13-01T -1 # Month out of range.
518
+ 409 2000-12-32T -1 # Day out of range.
519
+ 410 10000-01-01T -1 # Year out of range.
520
+
521
+ __DATA_END__
522
+
523
+ end
524
+
525
+ end