when_exe 0.4.1 → 0.4.2

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 (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