when_exe 0.4.1 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (96) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +36 -33
  3. data/bin/locales.rb +1 -1
  4. data/bin/make_ttl.rb.config +1 -1
  5. data/lib/when_exe.rb +27 -16
  6. data/lib/when_exe/basictypes.rb +772 -771
  7. data/lib/when_exe/calendartypes.rb +1485 -1453
  8. data/lib/when_exe/coordinates.rb +5 -0
  9. data/lib/when_exe/core/compatibility.rb +1 -1
  10. data/lib/when_exe/core/duration.rb +147 -116
  11. data/lib/when_exe/core/extension.rb +499 -497
  12. data/lib/when_exe/ephemeris.rb +1952 -1951
  13. data/lib/when_exe/ephemeris/eclipse.rb +5 -4
  14. data/lib/when_exe/ephemeris/notes.rb +457 -421
  15. data/lib/when_exe/ephemeris/planets.rb +585 -585
  16. data/lib/when_exe/ephemeris/sun.rb +214 -214
  17. data/lib/when_exe/google_api.rb +153 -0
  18. data/lib/when_exe/icalendar.rb +1640 -1632
  19. data/lib/when_exe/inspect.rb +42 -20
  20. data/lib/when_exe/linkeddata.rb +28 -7
  21. data/lib/when_exe/locales/autoload.rb +2 -1
  22. data/lib/when_exe/locales/locale.rb +35 -15
  23. data/lib/when_exe/locales/zh.rb +77 -0
  24. data/lib/when_exe/mini_application.rb +3 -1
  25. data/lib/when_exe/{googlecalendar.rb → obsolete/googlecalendar.rb} +144 -144
  26. data/lib/when_exe/parts/enumerator.rb +498 -486
  27. data/lib/when_exe/parts/geometric_complex.rb +397 -397
  28. data/lib/when_exe/parts/timezone.rb +246 -241
  29. data/lib/when_exe/region/armenian.rb +55 -56
  30. data/lib/when_exe/region/babylonian.rb +406 -405
  31. data/lib/when_exe/region/bahai.rb +107 -106
  32. data/lib/when_exe/region/balinese.rb +624 -622
  33. data/lib/when_exe/region/chinese.rb +1071 -1026
  34. data/lib/when_exe/region/chinese/epochs.rb +28 -28
  35. data/lib/when_exe/region/chinese/notes.rb +219 -0
  36. data/lib/when_exe/region/chinese/twins.rb +803 -803
  37. data/lib/when_exe/region/christian.rb +21 -15
  38. data/lib/when_exe/region/coptic.rb +107 -106
  39. data/lib/when_exe/region/discordian.rb +218 -218
  40. data/lib/when_exe/region/east_asian.rb +1 -1
  41. data/lib/when_exe/region/french.rb +126 -56
  42. data/lib/when_exe/region/geologicalage.rb +639 -639
  43. data/lib/when_exe/region/goddess.rb +60 -58
  44. data/lib/when_exe/region/hanke_henry.rb +2 -2
  45. data/lib/when_exe/region/indian.rb +1225 -1222
  46. data/lib/when_exe/region/international_fixed.rb +96 -97
  47. data/lib/when_exe/region/iranian.rb +206 -203
  48. data/lib/when_exe/region/islamic.rb +102 -102
  49. data/lib/when_exe/region/japanese.rb +126 -71
  50. data/lib/when_exe/region/japanese/epochs.rb +426 -426
  51. data/lib/when_exe/region/japanese/notes.rb +101 -81
  52. data/lib/when_exe/region/japanese/residues.rb +1345 -1311
  53. data/lib/when_exe/region/japanese/twins.rb +225 -225
  54. data/lib/when_exe/region/japanese/weeks.rb +112 -112
  55. data/lib/when_exe/region/javanese.rb +230 -230
  56. data/lib/when_exe/region/jewish.rb +130 -131
  57. data/lib/when_exe/region/m17n.rb +114 -114
  58. data/lib/when_exe/region/martian.rb +258 -258
  59. data/lib/when_exe/region/mayan.rb +11 -8
  60. data/lib/when_exe/region/pax.rb +4 -5
  61. data/lib/when_exe/region/pope.rb +1 -1
  62. data/lib/when_exe/region/positivist.rb +100 -100
  63. data/lib/when_exe/region/residue.rb +162 -162
  64. data/lib/when_exe/region/roman.rb +333 -333
  65. data/lib/when_exe/region/{soviet.rb → russian.rb} +221 -209
  66. data/lib/when_exe/region/shire.rb +222 -223
  67. data/lib/when_exe/region/symmetry.rb +50 -50
  68. data/lib/when_exe/region/thai.rb +336 -336
  69. data/lib/when_exe/region/tibetan.rb +315 -316
  70. data/lib/when_exe/region/tranquility.rb +207 -208
  71. data/lib/when_exe/region/vanishing_leprechaun.rb +3 -1
  72. data/lib/when_exe/region/vietnamese.rb +449 -440
  73. data/lib/when_exe/region/weekdate.rb +80 -80
  74. data/lib/when_exe/region/world.rb +170 -171
  75. data/lib/when_exe/region/world_season.rb +89 -89
  76. data/lib/when_exe/region/yerm.rb +3 -3
  77. data/lib/when_exe/region/zoroastrian.rb +205 -205
  78. data/lib/when_exe/timestandard.rb +708 -707
  79. data/lib/when_exe/tmduration.rb +338 -338
  80. data/lib/when_exe/tmobjects.rb +1356 -1356
  81. data/lib/when_exe/tmposition.rb +66 -31
  82. data/lib/when_exe/version.rb +16 -2
  83. data/test/examples/Residue.m17n +83 -83
  84. data/test/examples/Terms.m17n +2 -2
  85. data/test/test.rb +2 -2
  86. data/test/test/google_api.rb +65 -0
  87. data/test/test/linkeddata.rb +1 -1
  88. data/test/test/{googlecalendar.rb → obsolete/googlecalendar.rb} +194 -194
  89. data/test/test/region/indian.rb +90 -85
  90. data/test/test/region/m17n.rb +7 -7
  91. data/test/test/region/mayan.rb +195 -195
  92. data/test/test/region/residue.rb +153 -153
  93. data/test/test/tmposition.rb +11 -1
  94. data/when_exe.gemspec +2 -2
  95. metadata +95 -8
  96. data/test/test.rb.config +0 -1
@@ -314,11 +314,11 @@ module When::TM
314
314
  gsub(When::Parts::Resource::IRIDecode) {|c| When::Parts::Resource::IRIDecodeTable[c]}
315
315
 
316
316
  # suffix - Frame specification
317
- if iso8601form =~ /\A(.*[^\d])\((([-+*&%@!>=<?\dW.]|\{.+?\})+)\)\z/
317
+ if iso8601form =~ /\A(.*[^\d]|.+=[^:]+)\((([-+*&%@!>=<?\dW.T:]|\{.+?\})+)\)\z/
318
318
  frame, iso8601form = $~[1..2]
319
319
  frame.sub!(/_+\z/, '')
320
320
  else
321
- iso8601form, frame, *rest = iso8601form.split(/\^{1,2}/)
321
+ iso8601form, frame, *rest = iso8601form.split(/(?:\^|%5E){1,2}/i)
322
322
  return rest.inject(_instance(iso8601form + '^' + frame, options)) {|p,c| When.Resource(c, '_c:').jul_trans(p)} unless rest.empty?
323
323
  end
324
324
 
@@ -326,7 +326,7 @@ module When::TM
326
326
  options = options.merge({:frame=>When.Resource(frame, '_c:')}) if frame
327
327
 
328
328
  # indeterminateValue
329
- if (iso8601form.sub!(/\/After$|^Before\/|^Now$|^Unknown$|^[-+]Infinity\z/i, ''))
329
+ if (iso8601form.sub!(/\/After\z|\ABefore\/|\ANow\z|\AUnknown\z|\A[-+]Infinity\z/i, ''))
330
330
  options[:indeterminated_position] = When::TimeValue::S[$&.sub(/\//,'')]
331
331
  case options[:indeterminated_position]
332
332
  when When::TimeValue::Now,
@@ -505,7 +505,7 @@ module When::TM
505
505
  main[:clock] = clock if clock
506
506
  [:indeterminated_position, :frame, :events, :precision,
507
507
  :era_name, :era, :abbr, :extra_year_digits, :ordinal_date_digits, :wkst, :time_standard, :location].each do |key|
508
- main[key] = query.delete(key) if (query.key?(key))
508
+ main[key] = query.delete(key) if query.key?(key)
509
509
  end
510
510
  long = query.delete(:long)
511
511
  lat = query.delete(:lat)
@@ -538,7 +538,7 @@ module When::TM
538
538
 
539
539
  # PeriodDuration
540
540
  sign, *args = PeriodDuration._to_array(specification)
541
- if (sign)
541
+ if sign
542
542
  args << options
543
543
  duration = PeriodDuration.new(*args)
544
544
  return (sign >= 0) ? duration : -duration
@@ -548,14 +548,14 @@ module When::TM
548
548
  specification =~ /(.+?)(?:\[([-+]?\d+)\])?\z/
549
549
  options[:sdn] = $2.to_i if $2
550
550
  f, d, t, z, e, r = When::BasicTypes::DateTime._to_array($1, options)
551
- raise ArgumentError, "Timezone conflict: #{z} - #{options[:clock]}" if (z && options[:clock])
552
551
  options.delete(:abbr)
552
+ z2 = When.Clock(options[:clock]) if z && options[:clock]
553
553
  z ||= options[:clock]
554
- z = When.Clock(z) if (z =~ /\A[A-Z]+\z/)
554
+ z = When.Clock(z) if z =~ /\A[A-Z]+\z/
555
555
 
556
556
  unless d
557
557
  # ClockTime
558
- raise ArgumentError, "Timezone conflict: #{z} - #{options[:clock]}" if (z && options[:frame])
558
+ raise ArgumentError, "Timezone conflict: #{z} - #{options[:clock]}" if z && options[:frame]
559
559
  options[:frame] ||= z
560
560
  options.delete(:clock)
561
561
  return ClockTime.new(t, options)
@@ -563,7 +563,7 @@ module When::TM
563
563
 
564
564
  options[:era_name] = e if e
565
565
  options[:_format ] = f if f
566
- d, w = d[0..0], d[1..-1] if (f == :week || f == :day)
566
+ d, w = d[0..0], d[1..-1] if f == :week || f == :day
567
567
  position = z ? DateAndTime.new(d, t||[0], options.update({:clock => z})) :
568
568
  t ? DateAndTime.new(d, t, options) :
569
569
  CalDate.new(d, options)
@@ -586,7 +586,7 @@ module When::TM
586
586
  position &= residue
587
587
  end
588
588
  end
589
- return position
589
+ z2 ? z2 ^ position : position
590
590
  end
591
591
  end
592
592
 
@@ -703,14 +703,13 @@ module When::TM
703
703
 
704
704
  # 標準ライブラリの DateTime オブジェクトへの変換
705
705
  #
706
+ # @param [Integer] start ::DateTime オブジェクトのグレゴリオ改暦日(ユリウス通日)
706
707
  # @param [Hash] option 時間の歩度が1.0でない場合のための option
707
708
  # see {When::TM::TemporalPosition._instance}
708
709
  #
709
- # @param [Integer] start ::DateTime オブジェクトのグレゴリオ改暦日(ユリウス通日)
710
- #
711
710
  # @return [::DateTime]
712
711
  #
713
- def to_datetime(option={:frame=>When::UTC}, start=_default_start)
712
+ def to_datetime(start=_default_start, option={:frame=>When::UTC})
714
713
  return JulianDate.dynamical_time(dynamical_time, option).to_datetime unless time_standard.rate_of_clock == 1.0
715
714
  raise TypeError, "Clock not assigned" unless clock
716
715
  Rational
@@ -721,14 +720,13 @@ module When::TM
721
720
 
722
721
  # 標準ライブラリの Date オブジェクトへの変換
723
722
  #
723
+ # @param [Integer] start ::DateTime オブジェクトのグレゴリオ改暦日(ユリウス通日)
724
724
  # @param [Hash] option 時間の歩度が1.0でない場合のための option
725
725
  # see {When::TM::TemporalPosition._instance}
726
726
  #
727
- # @param [Integer] start ::DateTime オブジェクトのグレゴリオ改暦日(ユリウス通日)
728
- #
729
727
  # @return [::Date]
730
728
  #
731
- def to_date(option={}, start=_default_start)
729
+ def to_date(start=_default_start, option={})
732
730
  return JulianDate.dynamical_time(dynamical_time, option).to_date unless time_standard.rate_of_clock == 1.0
733
731
  ::Date.jd(to_i, start)
734
732
  end
@@ -1031,12 +1029,12 @@ module When::TM
1031
1029
  # 属性のコピー
1032
1030
  # @private
1033
1031
  def _copy(options={})
1034
- @frame = options[:frame] if (options.key?(:frame))
1035
- @events = options[:events] if (options.key?(:events))
1036
- @precision = options[:precision] if (options.key?(:precision))
1037
- @query = options[:query] if (options.key?(:query))
1038
- @location = options[:location] if (options.key?(:location))
1039
- @time_standard = options[:time_standard] if (options.key?(:time_standard))
1032
+ @frame = options[:frame] if options.key?(:frame)
1033
+ @events = options[:events] if options.key?(:events)
1034
+ @precision = options[:precision] if options.key?(:precision)
1035
+ @query = options[:query] if options.key?(:query)
1036
+ @location = options[:location] if options.key?(:location)
1037
+ @time_standard = options[:time_standard] if options.key?(:time_standard)
1040
1038
  @sdn = @universal_time = @local_time = @dynamical_time = @period = nil
1041
1039
  _normalize(options)
1042
1040
  return self
@@ -1403,7 +1401,7 @@ module When::TM
1403
1401
  #
1404
1402
  def initialize(universal_time, options={})
1405
1403
  @frame = options.delete(:frame)
1406
- @frame = When.Clock(@frame) if (@frame.kind_of?(String))
1404
+ @frame = When.Clock(@frame) if @frame.kind_of?(String)
1407
1405
  @frame = @frame._daylight(universal_time) if @frame && @frame._need_validate
1408
1406
  precision = options.delete(:precision)
1409
1407
  precision ||= DAY unless @frame.kind_of?(Clock)
@@ -1517,9 +1515,12 @@ module When::TM
1517
1515
  # 属性のコピー
1518
1516
  # @private
1519
1517
  def _copy(options={})
1520
- @clk_time = options[:time] if (options.key?(:time))
1521
- @frame = options[:clock] if (options.key?(:clock))
1522
- if (options.key?(:tz_prop))
1518
+ @clk_time = options[:time] if options.key?(:time)
1519
+ if options.key?(:clock)
1520
+ options.delete(:frame)
1521
+ @frame = options[:clock]
1522
+ end
1523
+ if options.key?(:tz_prop)
1523
1524
  @frame = @frame.dup
1524
1525
  @frame.tz_prop = options[:tz_prop]
1525
1526
  end
@@ -1719,6 +1720,21 @@ module When::TM
1719
1720
  'year' => most_significant_coordinate})
1720
1721
  end
1721
1722
 
1723
+ # 暦年代の削除
1724
+ #
1725
+ # @return [When::TM::CalDate] 暦年代を削除した When::TM::CalDate
1726
+ #
1727
+ def without_era
1728
+ target = dup
1729
+ return target unless calendar_era
1730
+ options = _attr
1731
+ options[:era] = nil
1732
+ options[:era_name] = nil
1733
+ options[:date] = cal_date.dup
1734
+ options[:date][0] += calendar_era_epoch
1735
+ target._copy(options)
1736
+ end
1737
+
1722
1738
  # 要素の参照
1723
1739
  #
1724
1740
  # @param [Integer, String] index 参照する要素の指定
@@ -1865,7 +1881,9 @@ module When::TM
1865
1881
  # 属性のコピー
1866
1882
  # @private
1867
1883
  def _copy(options={})
1868
- @cal_date = options[:date] if (options.key?(:date))
1884
+ @cal_date = options[:date] if options.key?(:date)
1885
+ @calendar_era = options[:era] if options.key?(:era)
1886
+ @calendar_era_props = options[:era_name] if options.key?(:era_name)
1869
1887
  return super
1870
1888
  end
1871
1889
 
@@ -1909,7 +1927,7 @@ module When::TM
1909
1927
  era, date = _search_era(@calendar_era, trans_options)
1910
1928
  else
1911
1929
  eras = CalendarEra._instance(query_options)
1912
- raise ArgumentError, "CalendarEraName doesn't exist: #{query_options[:label]}" if (eras.size==0)
1930
+ raise ArgumentError, "CalendarEraName doesn't exist: #{query_options[:label]}" if eras.empty?
1913
1931
  eras.each do |e|
1914
1932
  era, date = _search_era(e, trans_options)
1915
1933
  next unless era
@@ -1965,7 +1983,7 @@ module When::TM
1965
1983
  end
1966
1984
  era = new_era
1967
1985
  when TimeValue
1968
- return era, date
1986
+ return era, date
1969
1987
  else
1970
1988
  break
1971
1989
  end
@@ -2105,7 +2123,18 @@ module When::TM
2105
2123
  #
2106
2124
  def floor(digit=DAY, precision=digit)
2107
2125
  count = digit - clock.indices.length
2108
- date = (digit>=DAY) ? @cal_date.dup : @frame._validate(@cal_date[0..(digit-1)])
2126
+
2127
+ if digit>=DAY
2128
+ date = @cal_date.dup
2129
+ elsif @calendar_era_props
2130
+ date = @cal_date.dup
2131
+ date[0] += calendar_era_epoch
2132
+ date = @frame._validate(date[0..(digit-1)])
2133
+ date[0] -= calendar_era_epoch
2134
+ else
2135
+ date = @frame._validate(@cal_date[0..(digit-1)])
2136
+ end
2137
+
2109
2138
  time = @clk_time.clk_time[0..((digit<=DAY) ? 0 : ((count>=0) ? -1 : digit))]
2110
2139
  time[0] += to_i
2111
2140
  time = clock._validate(time)
@@ -2179,7 +2208,13 @@ module When::TM
2179
2208
  case options[:time]
2180
2209
  when Array
2181
2210
  if clock._need_validate
2182
- new_clock = clock._daylight([@frame, options[:date], options[:time]])
2211
+ if @calendar_era_props
2212
+ date = options[:date].dup
2213
+ date[0] += calendar_era_epoch
2214
+ else
2215
+ date = options[:date]
2216
+ end
2217
+ new_clock = clock._daylight([@frame, date, options[:time]])
2183
2218
  options[:time] = options[:time].map {|t| t * 1}
2184
2219
  else
2185
2220
  new_clock = clock
@@ -1,10 +1,24 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  =begin
3
- Copyright (C) 2013-2015 Takashi SUGA
3
+ Copyright (C) 2011-2015 Takashi SUGA
4
4
 
5
5
  You may use and/or modify this file according to the license described in the LICENSE.txt file included in this archive.
6
6
  =end
7
7
 
8
8
  module When
9
- VERSION = "0.4.1"
9
+ VERSION = "0.4.2"
10
+ YEARS = "(C) 2011-2015"
11
+ AUTHOR = "Takashi SUGA"
12
+ COPYRIGHT = "#{YEARS} #{AUTHOR}"
13
+
14
+ class BasicTypes::M17n
15
+ Rights = [self, [
16
+ "locale:[=en:, ja=ja:, alias]",
17
+ "names:[Basic information=, 基本情報=, *alias:Rights=]",
18
+ "[#{YEARS}=, *alias:Years]",
19
+ "[#{AUTHOR}=http://hosi.org/TakashiSuga, 須賀 隆=, *alias:Author=]",
20
+ "[When.exe written in Ruby language=http://www2u.biglobe.ne.jp/~suchowan/when_exe_wiki.html, When.exe Ruby版=, *alias:Title=]",
21
+ "[Gem Ver. #{VERSION}=http://rubygems.org/gems/when_exe, *alias:Version=]"
22
+ ]]
23
+ end
10
24
  end
@@ -1,5 +1,5 @@
1
1
  BEGIN:B:M17N
2
- # Copyright (C) 20112-13 Takashi SUGA
2
+ # Copyright (C) 2012-2015 Takashi SUGA
3
3
  #
4
4
  # You may use and/or modify this file according to the license
5
5
  # described in the LICENSE.txt file included in this archive.
@@ -34,16 +34,16 @@ BEGIN:B:M17N
34
34
  DIVISOR:10
35
35
  DAY:11
36
36
  YEAR:4
37
- CO:RESIDUE:0,10,0,[kinoe, *甲]
38
- CO:RESIDUE:1,10,0,[kinoto, *乙]
39
- CO:RESIDUE:2,10,0,[hinoe, *丙]
40
- CO:RESIDUE:3,10,0,[hinoto, *丁]
41
- CO:RESIDUE:4,10,0,[tsuchinoe, *戊]
42
- CO:RESIDUE:5,10,0,[tsuchinoto, *己]
43
- CO:RESIDUE:6,10,0,[kanoe, *庚]
44
- CO:RESIDUE:7,10,0,[kanoto, *辛]
45
- CO:RESIDUE:8,10,0,[mizunoe, *壬]
46
- CO:RESIDUE:9,10,0,[mizunoto, *癸]
37
+ CO:RESIDUE:0,10,0,[Wood-yang, *甲]
38
+ CO:RESIDUE:1,10,0,[Wood-yin, *乙]
39
+ CO:RESIDUE:2,10,0,[Fire-yang, *丙]
40
+ CO:RESIDUE:3,10,0,[Fire-yin, *丁]
41
+ CO:RESIDUE:4,10,0,[Erath-yang, *戊]
42
+ CO:RESIDUE:5,10,0,[Erath-yin, *己]
43
+ CO:RESIDUE:6,10,0,[Metal-yang, *庚]
44
+ CO:RESIDUE:7,10,0,[Metal-yin, *辛]
45
+ CO:RESIDUE:8,10,0,[Water-yang, *壬]
46
+ CO:RESIDUE:9,10,0,[Water-yin, *癸]
47
47
  END:CO:RESIDUE
48
48
 
49
49
  BEGIN:CO:RESIDUE
@@ -51,18 +51,18 @@ BEGIN:B:M17N
51
51
  DIVISOR:12
52
52
  DAY:11
53
53
  YEAR:4
54
- CO:RESIDUE: 0,12,0,[ne, *子]
55
- CO:RESIDUE: 1,12,0,[ushi, *丑]
56
- CO:RESIDUE: 2,12,0,[tora, *寅]
57
- CO:RESIDUE: 3,12,0,[u, *卯]
58
- CO:RESIDUE: 4,12,0,[tatsu, *辰]
59
- CO:RESIDUE: 5,12,0,[mi, *巳]
60
- CO:RESIDUE: 6,12,0,[uma, *午]
61
- CO:RESIDUE: 7,12,0,[hitsuji, *未]
62
- CO:RESIDUE: 8,12,0,[saru, *申]
63
- CO:RESIDUE: 9,12,0,[tori, *酉]
64
- CO:RESIDUE:10,12,0,[inu, *戌]
65
- CO:RESIDUE:11,12,0,[i, *亥]
54
+ CO:RESIDUE: 0,12,0,[Rat, *子]
55
+ CO:RESIDUE: 1,12,0,[Ox, *丑]
56
+ CO:RESIDUE: 2,12,0,[Tiger, *寅]
57
+ CO:RESIDUE: 3,12,0,[Rabbit, *卯]
58
+ CO:RESIDUE: 4,12,0,[Dragon, *辰]
59
+ CO:RESIDUE: 5,12,0,[Snake, *巳]
60
+ CO:RESIDUE: 6,12,0,[Horse, *午]
61
+ CO:RESIDUE: 7,12,0,[Goat, *未]
62
+ CO:RESIDUE: 8,12,0,[Monkey, *申]
63
+ CO:RESIDUE: 9,12,0,[Rooster, *酉]
64
+ CO:RESIDUE:10,12,0,[Dog, *戌]
65
+ CO:RESIDUE:11,12,0,[Pig, *亥]
66
66
  END:CO:RESIDUE
67
67
 
68
68
 
@@ -71,66 +71,66 @@ BEGIN:B:M17N
71
71
  DIVISOR:60
72
72
  DAY:11
73
73
  YEAR:4
74
- CO:RESIDUE: 0,60,0,[kinoe-ne, *甲子]
75
- CO:RESIDUE: 1,60,0,[kinoto-ushi, *乙丑]
76
- CO:RESIDUE: 2,60,0,[hinoe-tora, *丙寅]
77
- CO:RESIDUE: 3,60,0,[hinoto-u, *丁卯]
78
- CO:RESIDUE: 4,60,0,[tsuchinoe-tatsu, *戊辰]
79
- CO:RESIDUE: 5,60,0,[tsuchinoto-mi, *己巳]
80
- CO:RESIDUE: 6,60,0,[kanoe-uma, *庚午]
81
- CO:RESIDUE: 7,60,0,[kanoto-hitsuji, *辛未]
82
- CO:RESIDUE: 8,60,0,[mizunoe-saru, *壬申]
83
- CO:RESIDUE: 9,60,0,[mizunoto-tori, *癸酉]
84
- CO:RESIDUE:10,60,0,[kinoe-inu, *甲戌]
85
- CO:RESIDUE:11,60,0,[kinoto-i, *乙亥]
86
- CO:RESIDUE:12,60,0,[hinoe-ne, *丙子]
87
- CO:RESIDUE:13,60,0,[hinoto-ushi, *丁丑]
88
- CO:RESIDUE:14,60,0,[tsuchinoe-tora, *戊寅]
89
- CO:RESIDUE:15,60,0,[tsuchinoto-u, *己卯]
90
- CO:RESIDUE:16,60,0,[kanoe-tatsu, *庚辰]
91
- CO:RESIDUE:17,60,0,[kanoto-mi, *辛巳]
92
- CO:RESIDUE:18,60,0,[mizunoe-uma, *壬午]
93
- CO:RESIDUE:19,60,0,[mizunoto-hitsuji, *癸未]
94
- CO:RESIDUE:20,60,0,[kinoe-saru, *甲申]
95
- CO:RESIDUE:21,60,0,[kinoto-tori, *乙酉]
96
- CO:RESIDUE:22,60,0,[hinoe-inu, *丙戌]
97
- CO:RESIDUE:23,60,0,[hinoto-i, *丁亥]
98
- CO:RESIDUE:24,60,0,[tsuchinoe-ne, *戊子]
99
- CO:RESIDUE:25,60,0,[tsuchinoto-ushi, *己丑]
100
- CO:RESIDUE:26,60,0,[kanoe-tora, *庚寅]
101
- CO:RESIDUE:27,60,0,[kanoto-u, *辛卯]
102
- CO:RESIDUE:28,60,0,[mizunoe-tatsu, *壬辰]
103
- CO:RESIDUE:29,60,0,[mizunoto-mi, *癸巳]
104
- CO:RESIDUE:30,60,0,[kinoe-uma, *甲午]
105
- CO:RESIDUE:31,60,0,[kinoto-hitsuji, *乙未]
106
- CO:RESIDUE:32,60,0,[hinoe-saru, *丙申]
107
- CO:RESIDUE:33,60,0,[hinoto-tori, *丁酉]
108
- CO:RESIDUE:34,60,0,[tsuchinoe-inu, *戊戌]
109
- CO:RESIDUE:35,60,0,[tsuchinoto-i, *己亥]
110
- CO:RESIDUE:36,60,0,[kanoe-ne, *庚子]
111
- CO:RESIDUE:37,60,0,[kanoto-ushi, *辛丑]
112
- CO:RESIDUE:38,60,0,[mizunoe-tora, *壬寅]
113
- CO:RESIDUE:39,60,0,[mizunoto-u, *癸卯]
114
- CO:RESIDUE:40,60,0,[kinoe-tatsu, *甲辰]
115
- CO:RESIDUE:41,60,0,[kinoto-mi, *乙巳]
116
- CO:RESIDUE:42,60,0,[hinoe-uma, *丙午]
117
- CO:RESIDUE:43,60,0,[hinoto-hitsuji, *丁未]
118
- CO:RESIDUE:44,60,0,[tsuchinoe-saru, *戊申]
119
- CO:RESIDUE:45,60,0,[tsuchinoto-tori, *己酉]
120
- CO:RESIDUE:46,60,0,[kanoe-inu, *庚戌]
121
- CO:RESIDUE:47,60,0,[kanoto-i, *辛亥]
122
- CO:RESIDUE:48,60,0,[mizunoe-ne, *壬子]
123
- CO:RESIDUE:49,60,0,[mizunoto-ushi, *癸丑]
124
- CO:RESIDUE:50,60,0,[kinoe-tora, *甲寅]
125
- CO:RESIDUE:51,60,0,[kinoto-u, *乙卯]
126
- CO:RESIDUE:52,60,0,[hinoe-tatsu, *丙辰]
127
- CO:RESIDUE:53,60,0,[hinoto-mi, *丁巳]
128
- CO:RESIDUE:54,60,0,[tsuchinoe-uma, *戊午]
129
- CO:RESIDUE:55,60,0,[tsuchinoto-hitsuji, *己未]
130
- CO:RESIDUE:56,60,0,[kanoe-saru, *庚申]
131
- CO:RESIDUE:57,60,0,[kanoto-tori, *辛酉]
132
- CO:RESIDUE:58,60,0,[mizunoe-inu, *壬戌]
133
- CO:RESIDUE:59,60,0,[mizunoto-i, *癸亥]
74
+ CO:RESIDUE: 0,60,0,[Wood-yang-Rat, *甲子]
75
+ CO:RESIDUE: 1,60,0,[Wood-yin-Ox, *乙丑]
76
+ CO:RESIDUE: 2,60,0,[Fire-yang-Tiger, *丙寅]
77
+ CO:RESIDUE: 3,60,0,[Fire-yin-Rabbit, *丁卯]
78
+ CO:RESIDUE: 4,60,0,[Erath-yang-Dragon, *戊辰]
79
+ CO:RESIDUE: 5,60,0,[Erath-yin-Snake, *己巳]
80
+ CO:RESIDUE: 6,60,0,[Metal-yang-Horse, *庚午]
81
+ CO:RESIDUE: 7,60,0,[Metal-yin-Goat, *辛未]
82
+ CO:RESIDUE: 8,60,0,[Water-yang-Monkey, *壬申]
83
+ CO:RESIDUE: 9,60,0,[Water-yin-Rooster, *癸酉]
84
+ CO:RESIDUE:10,60,0,[Wood-yang-Dog, *甲戌]
85
+ CO:RESIDUE:11,60,0,[Wood-yin-Pig, *乙亥]
86
+ CO:RESIDUE:12,60,0,[Fire-yang-Rat, *丙子]
87
+ CO:RESIDUE:13,60,0,[Fire-yin-Ox, *丁丑]
88
+ CO:RESIDUE:14,60,0,[Erath-yang-Tiger, *戊寅]
89
+ CO:RESIDUE:15,60,0,[Erath-yin-Rabbit, *己卯]
90
+ CO:RESIDUE:16,60,0,[Metal-yang-Dragon, *庚辰]
91
+ CO:RESIDUE:17,60,0,[Metal-yin-Snake, *辛巳]
92
+ CO:RESIDUE:18,60,0,[Water-yang-Horse, *壬午]
93
+ CO:RESIDUE:19,60,0,[Water-yin-Goat, *癸未]
94
+ CO:RESIDUE:20,60,0,[Wood-yang-Monkey, *甲申]
95
+ CO:RESIDUE:21,60,0,[Wood-yin-Rooster, *乙酉]
96
+ CO:RESIDUE:22,60,0,[Fire-yang-Dog, *丙戌]
97
+ CO:RESIDUE:23,60,0,[Fire-yin-Pig, *丁亥]
98
+ CO:RESIDUE:24,60,0,[Erath-yang-Rat, *戊子]
99
+ CO:RESIDUE:25,60,0,[Erath-yin-Ox, *己丑]
100
+ CO:RESIDUE:26,60,0,[Metal-yang-Tiger, *庚寅]
101
+ CO:RESIDUE:27,60,0,[Metal-yin-Rabbit, *辛卯]
102
+ CO:RESIDUE:28,60,0,[Water-yang-Dragon, *壬辰]
103
+ CO:RESIDUE:29,60,0,[Water-yin-Snake, *癸巳]
104
+ CO:RESIDUE:30,60,0,[Wood-yang-Horse, *甲午]
105
+ CO:RESIDUE:31,60,0,[Wood-yin-Goat, *乙未]
106
+ CO:RESIDUE:32,60,0,[Fire-yang-Monkey, *丙申]
107
+ CO:RESIDUE:33,60,0,[Fire-yin-Rooster, *丁酉]
108
+ CO:RESIDUE:34,60,0,[Erath-yang-Dog, *戊戌]
109
+ CO:RESIDUE:35,60,0,[Erath-yin-Pig, *己亥]
110
+ CO:RESIDUE:36,60,0,[Metal-yang-Rat, *庚子]
111
+ CO:RESIDUE:37,60,0,[Metal-yin-Ox, *辛丑]
112
+ CO:RESIDUE:38,60,0,[Water-yang-Tiger, *壬寅]
113
+ CO:RESIDUE:39,60,0,[Water-yin-Rabbit, *癸卯]
114
+ CO:RESIDUE:40,60,0,[Wood-yang-Dragon, *甲辰]
115
+ CO:RESIDUE:41,60,0,[Wood-yin-Snake, *乙巳]
116
+ CO:RESIDUE:42,60,0,[Fire-yang-Horse, *丙午]
117
+ CO:RESIDUE:43,60,0,[Fire-yin-Goat, *丁未]
118
+ CO:RESIDUE:44,60,0,[Erath-yang-Monkey, *戊申]
119
+ CO:RESIDUE:45,60,0,[Erath-yin-Rooster, *己酉]
120
+ CO:RESIDUE:46,60,0,[Metal-yang-Dog, *庚戌]
121
+ CO:RESIDUE:47,60,0,[Metal-yin-Pig, *辛亥]
122
+ CO:RESIDUE:48,60,0,[Water-yang-Rat, *壬子]
123
+ CO:RESIDUE:49,60,0,[Water-yin-Ox, *癸丑]
124
+ CO:RESIDUE:50,60,0,[Wood-yang-Tiger, *甲寅]
125
+ CO:RESIDUE:51,60,0,[Wood-yin-Rabbit, *乙卯]
126
+ CO:RESIDUE:52,60,0,[Fire-yang-Dragon, *丙辰]
127
+ CO:RESIDUE:53,60,0,[Fire-yin-Snake, *丁巳]
128
+ CO:RESIDUE:54,60,0,[Erath-yang-Horse, *戊午]
129
+ CO:RESIDUE:55,60,0,[Erath-yin-Goat, *己未]
130
+ CO:RESIDUE:56,60,0,[Metal-yang-Monkey, *庚申]
131
+ CO:RESIDUE:57,60,0,[Metal-yin-Rooster, *辛酉]
132
+ CO:RESIDUE:58,60,0,[Water-yang-Dog, *壬戌]
133
+ CO:RESIDUE:59,60,0,[Water-yin-Pig, *癸亥]
134
134
  END:CO:RESIDUE
135
135
 
136
136
  END:B:M17N