WriteExcel 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) hide show
  1. data/.document +5 -0
  2. data/.gitignore +21 -0
  3. data/LICENSE +20 -0
  4. data/README.rdoc +17 -0
  5. data/Rakefile +47 -0
  6. data/VERSION +1 -0
  7. data/examples/a_simple.rb +42 -0
  8. data/examples/autofilters.rb +266 -0
  9. data/examples/bigfile.rb +30 -0
  10. data/examples/copyformat.rb +51 -0
  11. data/examples/data_validate.rb +278 -0
  12. data/examples/date_time.rb +86 -0
  13. data/examples/demo.rb +118 -0
  14. data/examples/diag_border.rb +35 -0
  15. data/examples/formats.rb +489 -0
  16. data/examples/header.rb +136 -0
  17. data/examples/hidden.rb +28 -0
  18. data/examples/hyperlink.rb +42 -0
  19. data/examples/images.rb +52 -0
  20. data/examples/merge1.rb +39 -0
  21. data/examples/merge2.rb +44 -0
  22. data/examples/merge3.rb +65 -0
  23. data/examples/merge4.rb +82 -0
  24. data/examples/merge5.rb +79 -0
  25. data/examples/protection.rb +46 -0
  26. data/examples/regions.rb +52 -0
  27. data/examples/repeat.rb +42 -0
  28. data/examples/stats.rb +75 -0
  29. data/examples/stocks.rb +80 -0
  30. data/examples/tab_colors.rb +30 -0
  31. data/lib/WriteExcel.rb +30 -0
  32. data/lib/WriteExcel/biffwriter.rb +259 -0
  33. data/lib/WriteExcel/chart.rb +217 -0
  34. data/lib/WriteExcel/excelformula.y +138 -0
  35. data/lib/WriteExcel/excelformulaparser.rb +573 -0
  36. data/lib/WriteExcel/format.rb +1108 -0
  37. data/lib/WriteExcel/formula.rb +986 -0
  38. data/lib/WriteExcel/olewriter.rb +322 -0
  39. data/lib/WriteExcel/properties.rb +250 -0
  40. data/lib/WriteExcel/storage_lite.rb +590 -0
  41. data/lib/WriteExcel/workbook.rb +2602 -0
  42. data/lib/WriteExcel/worksheet.rb +6378 -0
  43. data/spec/WriteExcel_spec.rb +7 -0
  44. data/spec/spec.opts +1 -0
  45. data/spec/spec_helper.rb +9 -0
  46. data/test/tc_all.rb +31 -0
  47. data/test/tc_biff.rb +104 -0
  48. data/test/tc_chart.rb +22 -0
  49. data/test/tc_example_match.rb +1280 -0
  50. data/test/tc_format.rb +1264 -0
  51. data/test/tc_formula.rb +63 -0
  52. data/test/tc_ole.rb +110 -0
  53. data/test/tc_storage_lite.rb +102 -0
  54. data/test/tc_workbook.rb +115 -0
  55. data/test/tc_worksheet.rb +115 -0
  56. data/test/test_00_IEEE_double.rb +14 -0
  57. data/test/test_01_add_worksheet.rb +12 -0
  58. data/test/test_02_merge_formats.rb +58 -0
  59. data/test/test_04_dimensions.rb +397 -0
  60. data/test/test_05_rows.rb +182 -0
  61. data/test/test_06_extsst.rb +80 -0
  62. data/test/test_11_date_time.rb +484 -0
  63. data/test/test_12_date_only.rb +506 -0
  64. data/test/test_13_date_seconds.rb +486 -0
  65. data/test/test_21_escher.rb +629 -0
  66. data/test/test_22_mso_drawing_group.rb +739 -0
  67. data/test/test_23_note.rb +78 -0
  68. data/test/test_24_txo.rb +80 -0
  69. data/test/test_26_autofilter.rb +327 -0
  70. data/test/test_27_autofilter.rb +144 -0
  71. data/test/test_28_autofilter.rb +174 -0
  72. data/test/test_29_process_jpg.rb +131 -0
  73. data/test/test_30_validation_dval.rb +82 -0
  74. data/test/test_31_validation_dv_strings.rb +131 -0
  75. data/test/test_32_validation_dv_formula.rb +211 -0
  76. data/test/test_40_property_types.rb +191 -0
  77. data/test/test_41_properties.rb +238 -0
  78. data/test/test_42_set_properties.rb +430 -0
  79. data/test/ts_all.rb +34 -0
  80. metadata +154 -0
@@ -0,0 +1,506 @@
1
+ ###############################################################################
2
+ #
3
+ # A test for Spreadsheet::WriteExcel.
4
+ #
5
+ # Tests date and time handling. Tests dates in 1900 and 1904 format.
6
+ #
7
+ # reverse('©'), May 2004, John McNamara, jmcnamara@cpan.org
8
+ #
9
+ # original written in Perl by John McNamara
10
+ # converted to Ruby by Hideo Nakamura, cxn03651@msj.biglobe.ne.jp
11
+ #
12
+ ############################################################################
13
+ $LOAD_PATH.unshift "#{File.dirname(__FILE__)}/../lib"
14
+
15
+ require "test/unit"
16
+ require 'WriteExcel'
17
+
18
+ class TC_data_only < Test::Unit::TestCase
19
+
20
+ def setup
21
+ t = Time.now.strftime("%Y%m%d")
22
+ path = "temp#{t}-#{$$}-#{rand(0x100000000).to_s(36)}"
23
+ @test_file = File.join(Dir.tmpdir, path)
24
+ @workbook = Spreadsheet::WriteExcel.new(@test_file)
25
+ @worksheet = @workbook.add_worksheet
26
+ end
27
+
28
+ def teardown
29
+ @workbook.close
30
+ File.unlink(@test_file) if FileTest.exist?(@test_file)
31
+ end
32
+
33
+ def test_the_dates_generated_by_excel
34
+ lines = data_generated_excel.split(/\n/)
35
+ while !lines.empty?
36
+ line = lines.shift.sub(/^\s*/,'')
37
+ braak if line =~ /^\s*# stop/ # For debugging
38
+
39
+ @worksheet.date_1904 = false if line =~ /Excel 1900/
40
+ @worksheet.date_1904 = true if line =~ /Excel 1904/
41
+
42
+ next unless line =~ /\S/ # Ignore blank lines
43
+ next if line =~ /^\s*#/ # Ignore comments
44
+
45
+ count, date, result = line.split(/\s+/)
46
+ number = @worksheet.convert_date_time(date)
47
+ number = -1 if number.nil?
48
+ assert_equal(result.to_i, number,
49
+ "Testing convert_date_time: #{date} #{result}")
50
+ end
51
+ end
52
+
53
+ def data_generated_excel
54
+
55
+ return <<-__DATA_END__
56
+
57
+ #
58
+ # The following data was generated by Excel.
59
+ #
60
+
61
+ #
62
+ # Excel 1900 date system
63
+ #
64
+ 1 1899-12-31T 0
65
+ 2 1900-01-00T 0
66
+ 3 1900-01-01T 1
67
+ 4 1900-02-27T 58
68
+ 5 1900-02-28T 59
69
+ 6 1900-02-29T 60
70
+ 7 1900-03-01T 61
71
+ 8 1900-03-02T 62
72
+ 9 1900-03-11T 71
73
+ 10 1900-04-08T 99
74
+ 11 1900-09-12T 256
75
+ 12 1901-05-03T 489
76
+ 13 1901-10-13T 652
77
+ 14 1902-02-15T 777
78
+ 15 1902-06-06T 888
79
+ 16 1902-09-25T 999
80
+ 17 1902-09-27T 1001
81
+ 18 1903-04-26T 1212
82
+ 19 1903-08-05T 1313
83
+ 20 1903-12-31T 1461
84
+ 21 1904-01-01T 1462
85
+ 22 1904-02-28T 1520
86
+ 23 1904-02-29T 1521
87
+ 24 1904-03-01T 1522
88
+ 25 1907-02-27T 2615
89
+ 26 1907-02-28T 2616
90
+ 27 1907-03-01T 2617
91
+ 28 1907-03-02T 2618
92
+ 29 1907-03-03T 2619
93
+ 30 1907-03-04T 2620
94
+ 31 1907-03-05T 2621
95
+ 32 1907-03-06T 2622
96
+ 33 1999-01-01T 36161
97
+ 34 1999-01-31T 36191
98
+ 35 1999-02-01T 36192
99
+ 36 1999-02-28T 36219
100
+ 37 1999-03-01T 36220
101
+ 38 1999-03-31T 36250
102
+ 39 1999-04-01T 36251
103
+ 40 1999-04-30T 36280
104
+ 41 1999-05-01T 36281
105
+ 42 1999-05-31T 36311
106
+ 43 1999-06-01T 36312
107
+ 44 1999-06-30T 36341
108
+ 45 1999-07-01T 36342
109
+ 46 1999-07-31T 36372
110
+ 47 1999-08-01T 36373
111
+ 48 1999-08-31T 36403
112
+ 49 1999-09-01T 36404
113
+ 50 1999-09-30T 36433
114
+ 51 1999-10-01T 36434
115
+ 52 1999-10-31T 36464
116
+ 53 1999-11-01T 36465
117
+ 54 1999-11-30T 36494
118
+ 55 1999-12-01T 36495
119
+ 56 1999-12-31T 36525
120
+ 57 2000-01-01T 36526
121
+ 58 2000-01-31T 36556
122
+ 59 2000-02-01T 36557
123
+ 60 2000-02-29T 36585
124
+ 61 2000-03-01T 36586
125
+ 62 2000-03-31T 36616
126
+ 63 2000-04-01T 36617
127
+ 64 2000-04-30T 36646
128
+ 65 2000-05-01T 36647
129
+ 66 2000-05-31T 36677
130
+ 67 2000-06-01T 36678
131
+ 68 2000-06-30T 36707
132
+ 69 2000-07-01T 36708
133
+ 70 2000-07-31T 36738
134
+ 71 2000-08-01T 36739
135
+ 72 2000-08-31T 36769
136
+ 73 2000-09-01T 36770
137
+ 74 2000-09-30T 36799
138
+ 75 2000-10-01T 36800
139
+ 76 2000-10-31T 36830
140
+ 77 2000-11-01T 36831
141
+ 78 2000-11-30T 36860
142
+ 79 2000-12-01T 36861
143
+ 80 2000-12-31T 36891
144
+ 81 2001-01-01T 36892
145
+ 82 2001-01-31T 36922
146
+ 83 2001-02-01T 36923
147
+ 84 2001-02-28T 36950
148
+ 85 2001-03-01T 36951
149
+ 86 2001-03-31T 36981
150
+ 87 2001-04-01T 36982
151
+ 88 2001-04-30T 37011
152
+ 89 2001-05-01T 37012
153
+ 90 2001-05-31T 37042
154
+ 91 2001-06-01T 37043
155
+ 92 2001-06-30T 37072
156
+ 93 2001-07-01T 37073
157
+ 94 2001-07-31T 37103
158
+ 95 2001-08-01T 37104
159
+ 96 2001-08-31T 37134
160
+ 97 2001-09-01T 37135
161
+ 98 2001-09-30T 37164
162
+ 99 2001-10-01T 37165
163
+ 100 2001-10-31T 37195
164
+ 101 2001-11-01T 37196
165
+ 102 2001-11-30T 37225
166
+ 103 2001-12-01T 37226
167
+ 104 2001-12-31T 37256
168
+ 105 2400-01-01T 182623
169
+ 106 2400-01-31T 182653
170
+ 107 2400-02-01T 182654
171
+ 108 2400-02-29T 182682
172
+ 109 2400-03-01T 182683
173
+ 110 2400-03-31T 182713
174
+ 111 2400-04-01T 182714
175
+ 112 2400-04-30T 182743
176
+ 113 2400-05-01T 182744
177
+ 114 2400-05-31T 182774
178
+ 115 2400-06-01T 182775
179
+ 116 2400-06-30T 182804
180
+ 117 2400-07-01T 182805
181
+ 118 2400-07-31T 182835
182
+ 119 2400-08-01T 182836
183
+ 120 2400-08-31T 182866
184
+ 121 2400-09-01T 182867
185
+ 122 2400-09-30T 182896
186
+ 123 2400-10-01T 182897
187
+ 124 2400-10-31T 182927
188
+ 125 2400-11-01T 182928
189
+ 126 2400-11-30T 182957
190
+ 127 2400-12-01T 182958
191
+ 128 2400-12-31T 182988
192
+ 129 4000-01-01T 767011
193
+ 130 4000-01-31T 767041
194
+ 131 4000-02-01T 767042
195
+ 132 4000-02-29T 767070
196
+ 133 4000-03-01T 767071
197
+ 134 4000-03-31T 767101
198
+ 135 4000-04-01T 767102
199
+ 136 4000-04-30T 767131
200
+ 137 4000-05-01T 767132
201
+ 138 4000-05-31T 767162
202
+ 139 4000-06-01T 767163
203
+ 140 4000-06-30T 767192
204
+ 141 4000-07-01T 767193
205
+ 142 4000-07-31T 767223
206
+ 143 4000-08-01T 767224
207
+ 144 4000-08-31T 767254
208
+ 145 4000-09-01T 767255
209
+ 146 4000-09-30T 767284
210
+ 147 4000-10-01T 767285
211
+ 148 4000-10-31T 767315
212
+ 149 4000-11-01T 767316
213
+ 150 4000-11-30T 767345
214
+ 151 4000-12-01T 767346
215
+ 152 4000-12-31T 767376
216
+ 153 4321-01-01T 884254
217
+ 154 4321-01-31T 884284
218
+ 155 4321-02-01T 884285
219
+ 156 4321-02-28T 884312
220
+ 157 4321-03-01T 884313
221
+ 158 4321-03-31T 884343
222
+ 159 4321-04-01T 884344
223
+ 160 4321-04-30T 884373
224
+ 161 4321-05-01T 884374
225
+ 162 4321-05-31T 884404
226
+ 163 4321-06-01T 884405
227
+ 164 4321-06-30T 884434
228
+ 165 4321-07-01T 884435
229
+ 166 4321-07-31T 884465
230
+ 167 4321-08-01T 884466
231
+ 168 4321-08-31T 884496
232
+ 169 4321-09-01T 884497
233
+ 170 4321-09-30T 884526
234
+ 171 4321-10-01T 884527
235
+ 172 4321-10-31T 884557
236
+ 173 4321-11-01T 884558
237
+ 174 4321-11-30T 884587
238
+ 175 4321-12-01T 884588
239
+ 176 4321-12-31T 884618
240
+ 177 9999-01-01T 2958101
241
+ 178 9999-01-31T 2958131
242
+ 179 9999-02-01T 2958132
243
+ 180 9999-02-28T 2958159
244
+ 181 9999-03-01T 2958160
245
+ 182 9999-03-31T 2958190
246
+ 183 9999-04-01T 2958191
247
+ 184 9999-04-30T 2958220
248
+ 185 9999-05-01T 2958221
249
+ 186 9999-05-31T 2958251
250
+ 187 9999-06-01T 2958252
251
+ 188 9999-06-30T 2958281
252
+ 189 9999-07-01T 2958282
253
+ 190 9999-07-31T 2958312
254
+ 191 9999-08-01T 2958313
255
+ 192 9999-08-31T 2958343
256
+ 193 9999-09-01T 2958344
257
+ 194 9999-09-30T 2958373
258
+ 195 9999-10-01T 2958374
259
+ 196 9999-10-31T 2958404
260
+ 197 9999-11-01T 2958405
261
+ 198 9999-11-30T 2958434
262
+ 199 9999-12-01T 2958435
263
+ 200 9999-12-31T 2958465
264
+
265
+ #
266
+ # Excel 1904 date system
267
+ #
268
+ 201 1904-01-01T 0
269
+ 202 1904-01-31T 30
270
+ 203 1904-02-01T 31
271
+ 204 1904-02-29T 59
272
+ 205 1904-03-01T 60
273
+ 206 1904-03-31T 90
274
+ 207 1904-04-01T 91
275
+ 208 1904-04-30T 120
276
+ 209 1904-05-01T 121
277
+ 210 1904-05-31T 151
278
+ 211 1904-06-01T 152
279
+ 212 1904-06-30T 181
280
+ 213 1904-07-01T 182
281
+ 214 1904-07-31T 212
282
+ 215 1904-08-01T 213
283
+ 216 1904-08-31T 243
284
+ 217 1904-09-01T 244
285
+ 218 1904-09-30T 273
286
+ 219 1904-10-01T 274
287
+ 220 1904-10-31T 304
288
+ 221 1904-11-01T 305
289
+ 222 1904-11-30T 334
290
+ 223 1904-12-01T 335
291
+ 224 1904-12-31T 365
292
+ 225 1907-02-27T 1153
293
+ 226 1907-02-28T 1154
294
+ 227 1907-03-01T 1155
295
+ 228 1907-03-02T 1156
296
+ 229 1907-03-03T 1157
297
+ 230 1907-03-04T 1158
298
+ 231 1907-03-05T 1159
299
+ 232 1907-03-06T 1160
300
+ 233 1999-01-01T 34699
301
+ 234 1999-01-31T 34729
302
+ 235 1999-02-01T 34730
303
+ 236 1999-02-28T 34757
304
+ 237 1999-03-01T 34758
305
+ 238 1999-03-31T 34788
306
+ 239 1999-04-01T 34789
307
+ 240 1999-04-30T 34818
308
+ 241 1999-05-01T 34819
309
+ 242 1999-05-31T 34849
310
+ 243 1999-06-01T 34850
311
+ 244 1999-06-30T 34879
312
+ 245 1999-07-01T 34880
313
+ 246 1999-07-31T 34910
314
+ 247 1999-08-01T 34911
315
+ 248 1999-08-31T 34941
316
+ 249 1999-09-01T 34942
317
+ 250 1999-09-30T 34971
318
+ 251 1999-10-01T 34972
319
+ 252 1999-10-31T 35002
320
+ 253 1999-11-01T 35003
321
+ 254 1999-11-30T 35032
322
+ 255 1999-12-01T 35033
323
+ 256 1999-12-31T 35063
324
+ 257 2000-01-01T 35064
325
+ 258 2000-01-31T 35094
326
+ 259 2000-02-01T 35095
327
+ 260 2000-02-29T 35123
328
+ 261 2000-03-01T 35124
329
+ 262 2000-03-31T 35154
330
+ 263 2000-04-01T 35155
331
+ 264 2000-04-30T 35184
332
+ 265 2000-05-01T 35185
333
+ 266 2000-05-31T 35215
334
+ 267 2000-06-01T 35216
335
+ 268 2000-06-30T 35245
336
+ 269 2000-07-01T 35246
337
+ 270 2000-07-31T 35276
338
+ 271 2000-08-01T 35277
339
+ 272 2000-08-31T 35307
340
+ 273 2000-09-01T 35308
341
+ 274 2000-09-30T 35337
342
+ 275 2000-10-01T 35338
343
+ 276 2000-10-31T 35368
344
+ 277 2000-11-01T 35369
345
+ 278 2000-11-30T 35398
346
+ 279 2000-12-01T 35399
347
+ 280 2000-12-31T 35429
348
+ 281 2001-01-01T 35430
349
+ 282 2001-01-31T 35460
350
+ 283 2001-02-01T 35461
351
+ 284 2001-02-28T 35488
352
+ 285 2001-03-01T 35489
353
+ 286 2001-03-31T 35519
354
+ 287 2001-04-01T 35520
355
+ 288 2001-04-30T 35549
356
+ 289 2001-05-01T 35550
357
+ 290 2001-05-31T 35580
358
+ 291 2001-06-01T 35581
359
+ 292 2001-06-30T 35610
360
+ 293 2001-07-01T 35611
361
+ 294 2001-07-31T 35641
362
+ 295 2001-08-01T 35642
363
+ 296 2001-08-31T 35672
364
+ 297 2001-09-01T 35673
365
+ 298 2001-09-30T 35702
366
+ 299 2001-10-01T 35703
367
+ 300 2001-10-31T 35733
368
+ 301 2001-11-01T 35734
369
+ 302 2001-11-30T 35763
370
+ 303 2001-12-01T 35764
371
+ 304 2001-12-31T 35794
372
+ 305 2400-01-01T 181161
373
+ 306 2400-01-31T 181191
374
+ 307 2400-02-01T 181192
375
+ 308 2400-02-29T 181220
376
+ 309 2400-03-01T 181221
377
+ 310 2400-03-31T 181251
378
+ 311 2400-04-01T 181252
379
+ 312 2400-04-30T 181281
380
+ 313 2400-05-01T 181282
381
+ 314 2400-05-31T 181312
382
+ 315 2400-06-01T 181313
383
+ 316 2400-06-30T 181342
384
+ 317 2400-07-01T 181343
385
+ 318 2400-07-31T 181373
386
+ 319 2400-08-01T 181374
387
+ 320 2400-08-31T 181404
388
+ 321 2400-09-01T 181405
389
+ 322 2400-09-30T 181434
390
+ 323 2400-10-01T 181435
391
+ 324 2400-10-31T 181465
392
+ 325 2400-11-01T 181466
393
+ 326 2400-11-30T 181495
394
+ 327 2400-12-01T 181496
395
+ 328 2400-12-31T 181526
396
+ 329 4000-01-01T 765549
397
+ 330 4000-01-31T 765579
398
+ 331 4000-02-01T 765580
399
+ 332 4000-02-29T 765608
400
+ 333 4000-03-01T 765609
401
+ 334 4000-03-31T 765639
402
+ 335 4000-04-01T 765640
403
+ 336 4000-04-30T 765669
404
+ 337 4000-05-01T 765670
405
+ 338 4000-05-31T 765700
406
+ 339 4000-06-01T 765701
407
+ 340 4000-06-30T 765730
408
+ 341 4000-07-01T 765731
409
+ 342 4000-07-31T 765761
410
+ 343 4000-08-01T 765762
411
+ 344 4000-08-31T 765792
412
+ 345 4000-09-01T 765793
413
+ 346 4000-09-30T 765822
414
+ 347 4000-10-01T 765823
415
+ 348 4000-10-31T 765853
416
+ 349 4000-11-01T 765854
417
+ 350 4000-11-30T 765883
418
+ 351 4000-12-01T 765884
419
+ 352 4000-12-31T 765914
420
+ 353 4321-01-01T 882792
421
+ 354 4321-01-31T 882822
422
+ 355 4321-02-01T 882823
423
+ 356 4321-02-28T 882850
424
+ 357 4321-03-01T 882851
425
+ 358 4321-03-31T 882881
426
+ 359 4321-04-01T 882882
427
+ 360 4321-04-30T 882911
428
+ 361 4321-05-01T 882912
429
+ 362 4321-05-31T 882942
430
+ 363 4321-06-01T 882943
431
+ 364 4321-06-30T 882972
432
+ 365 4321-07-01T 882973
433
+ 366 4321-07-31T 883003
434
+ 367 4321-08-01T 883004
435
+ 368 4321-08-31T 883034
436
+ 369 4321-09-01T 883035
437
+ 370 4321-09-30T 883064
438
+ 371 4321-10-01T 883065
439
+ 372 4321-10-31T 883095
440
+ 373 4321-11-01T 883096
441
+ 374 4321-11-30T 883125
442
+ 375 4321-12-01T 883126
443
+ 376 4321-12-31T 883156
444
+ 377 9999-01-01T 2956639
445
+ 378 9999-01-31T 2956669
446
+ 379 9999-02-01T 2956670
447
+ 380 9999-02-28T 2956697
448
+ 381 9999-03-01T 2956698
449
+ 382 9999-03-31T 2956728
450
+ 383 9999-04-01T 2956729
451
+ 384 9999-04-30T 2956758
452
+ 385 9999-05-01T 2956759
453
+ 386 9999-05-31T 2956789
454
+ 387 9999-06-01T 2956790
455
+ 388 9999-06-30T 2956819
456
+ 389 9999-07-01T 2956820
457
+ 390 9999-07-31T 2956850
458
+ 391 9999-08-01T 2956851
459
+ 392 9999-08-31T 2956881
460
+ 393 9999-09-01T 2956882
461
+ 394 9999-09-30T 2956911
462
+ 395 9999-10-01T 2956912
463
+ 396 9999-10-31T 2956942
464
+ 397 9999-11-01T 2956943
465
+ 398 9999-11-30T 2956972
466
+ 399 9999-12-01T 2956973
467
+ 400 9999-12-31T 2957003
468
+
469
+
470
+ #
471
+ # The following dates are invalid.
472
+ #
473
+
474
+ #
475
+ # Excel 1900 date system
476
+ #
477
+ 401 0000-12-30T -1 # Below year range.
478
+ 402 1000-12-30T -1 # Below year range.
479
+ 403 1899-12-30T -1 # Below year range.
480
+ 404 2002-02-29T -1 # False leap-day.
481
+ 405 2000-00-00T -1 # No month or day.
482
+ 406 2000-01-00T -1 # No day.
483
+ 407 2000-00-01T -1 # No month.
484
+ 408 2000-13-01T -1 # Month out of range.
485
+ 409 2000-12-32T -1 # Day out of range.
486
+ 410 10000-01-01T -1 # Year out of range.
487
+
488
+ #
489
+ # Excel 1904 date system
490
+ #
491
+ 411 1899-12-31T -1 # Below year range.
492
+ 412 1900-01-01T -1 # Below year range.
493
+ 413 1903-12-31T -1 # Below year range.
494
+ 414 2001-02-29T -1 # False leap-day.
495
+ 415 2000-00-00T -1 # No month or day.
496
+ 416 2000-01-00T -1 # No day.
497
+ 417 2000-00-01T -1 # No month.
498
+ 418 2000-13-01T -1 # Month out of range.
499
+ 419 2000-12-32T -1 # Day out of range.
500
+ 420 10000-01-01T -1 # Year out of range.
501
+
502
+ __DATA_END__
503
+
504
+ end
505
+
506
+ end