ricardoo27-writeexcel 0.6.12.1

Sign up to get free protection for your applications and to get access to all the features.
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