Module: When::CalendarTypes

Defined in:
lib/when_exe/calendartypes.rb,
lib/when_exe/region/dee.rb,
lib/when_exe/region/pax.rb,
lib/when_exe/region/thai.rb,
lib/when_exe/region/yerm.rb,
lib/when_exe/region/bahai.rb,
lib/when_exe/region/mayan.rb,
lib/when_exe/region/roman.rb,
lib/when_exe/region/shire.rb,
lib/when_exe/region/world.rb,
lib/when_exe/region/coptic.rb,
lib/when_exe/region/french.rb,
lib/when_exe/region/indian.rb,
lib/when_exe/region/jewish.rb,
lib/when_exe/region/korean.rb,
lib/when_exe/region/chinese.rb,
lib/when_exe/region/goddess.rb,
lib/when_exe/region/iranian.rb,
lib/when_exe/region/islamic.rb,
lib/when_exe/region/martian.rb,
lib/when_exe/region/tibetan.rb,
lib/when_exe/region/armenian.rb,
lib/when_exe/region/balinese.rb,
lib/when_exe/region/javanese.rb,
lib/when_exe/region/symmetry.rb,
lib/when_exe/region/weekdate.rb,
lib/when_exe/region/christian.rb,
lib/when_exe/region/babylonian.rb,
lib/when_exe/region/discordian.rb,
lib/when_exe/region/positivist.rb,
lib/when_exe/region/vietnamese.rb,
lib/when_exe/region/hanke_henry.rb,
lib/when_exe/region/tranquility.rb,
lib/when_exe/region/zoroastrian.rb,
lib/when_exe/region/world_season.rb,
lib/when_exe/region/chinese/twins.rb,
lib/when_exe/region/saudi_arabian.rb,
lib/when_exe/region/japanese/twins.rb,
lib/when_exe/region/chinese/calendars.rb,
lib/when_exe/region/japanese/calendars.rb,
lib/when_exe/region/international_fixed.rb,
lib/when_exe/region/vanishing_leprechaun.rb,
lib/when_exe.rb

Overview

具体的な When::TM::ReferenceSystem のサブクラスの実装

Defined Under Namespace

Modules: Lunar, Songkran, TableExtend Classes: BalineseLuniSolar, ChineseLuniSolar, ChineseSolar, Christian, Civil, CyclicTableBased, Discordian, EphemerisBased, EphemerisBasedIslamic, EphemerisBasedLunar, EphemerisBasedLuniSolar, EphemerisBasedSolar, Gregorian, HinduLuniSolar, HinduSolar, Jewish, Julian, LAT, LMT, LocalTime, MTC, PatternTableBasedLuniSolar, PatternTableBasedLuniSolarExtended, PatternTableBasedLuniSolarWithEphemeris, PatternTableBasedSolar, ReformVariation, RevisedJulian, SolarYearTableBased, SolarYearTableBasedWithSunrise, SolarYearTableBasedWithSunset, Swedish, THS, TableBased, Thai, ThaiC, ThaiP, ThaiT, Tibetan, Tranquility, UTC, VanishingLeprechaun, VikramSamvatSolar, WeekDate, Yerm

Constant Summary collapse

Dee =

Dee Calendar

[CyclicTableBased, {
  'label'         => 'Dee',
  'origin_of_LSC' => 1721425,
  'origin_of_MSC' => 1,
  'rule_table'    => _rule_table
}]
DeeCecil =

DeeCecil Calendar

[CyclicTableBased, {
  'label'         => 'Dee::DeeCecil',
  'origin_of_LSC' => 1721426,
  'origin_of_MSC' => 1,
  'rule_table'    => _rule_table
}]
Pax =

Pax Calendar

[CyclicTableBased, {
  'label'            => 'Pax',
  'origin_of_LSC'    => 1721061,
  'indices'          => [
    When.Index('Pax::Month', {:branch=>{+1=>When.Resource('_m:Pax::Month::*')[13]}}),
    When::Coordinates::DefaultDayIndex
  ],
  'rule_table'       => {
    'T'  => {'Rule'  =>[364] + (1...400).to_a.map {|year|
      yy = year % 100
      (yy % 6) == 0 || yy==99 ? 371 : 364
    }},
    364  => {'Length'=>[28] * 13,          'IDs'=>'1,2,3,4,5,6,7,8,9,10,11,12,13'},
    371  => {'Length'=>[28] * 12 + [7,28], 'IDs'=>'1,2,3,4,5,6,7,8,9,10,11,12,12=,13'}
  }
}]
Bahai =

Bahá‘í Calendar

[SolarYearTableBasedWithSunset, {
  'label'           => 'Bahai',
  'indices'         => _Indices,
  'origin_of_MSC'   => -1844 + 19*19,
  'diff_to_CE'      =>  0,
  'engine_month'    =>  3,
  'engine_day'      => 21,
  'rule_table'      => {
    365 => {'Length'=>[19] * 18 + [4, 19], 'IDs'=>_ID},
    366 => {'Length'=>[19] * 18 + [5, 19], 'IDs'=>_ID}
  },
  'note' => 'Bahai'
}]
LongCount =

Mayan Long Count

[{'Epoch' => Hash.new {|hash, key|
                            hash[key] = {
                              'origin_of_LSC' => 584283 + key.to_i
                            }}}, CyclicTableBased, {
  'origin_of_LSC' => 584283,
  'rule_table'    => {
    'T' => {'Rule'  =>[360]},
    360 => {'Length'=>[20] * 18}
  },
  'indices'=> [_c20, _c20, _c18, _c20],
  'note'   => 'Mayan#{?Epoch=Epoch}'
}]
JulianA =

Julian Calendar A : BCE45-BCE8

[CyclicTableBased, {
  'origin_of_LSC'  =>  1704987,
  'origin_of_MSC'  =>  -44,
  'indices' => _IndicesB12,
  'rule_table'     => {
    'T' => {'Rule'  =>[365,366,365]},
    365 => {'Length'=>[31,29] + [31,30]*5},
    366 => {'Length'=>[31,30] + [31,30]*5}
  },
  'note' => 'Roman'
}]
JulianB =

Julian Calendar B : BCE8-CE7

[CyclicTableBased, {
  'origin_of_LSC'  =>  1704987+13,
  'origin_of_MSC'  =>  -44,
  'indices' => _IndicesB12,
  'rule_table'     => {
    'T' => {'Rule'  =>[365]},
    365 => {'Length'=>[31,28] + [31,30,31,30,31]*2}
  },
  'note' => 'Roman'
}]
JulianC =

Julian Calendar C : CE8-

[Julian, {
  'indices' => _Indices12,
  'note'    => 'Roman'
}]
RomanA =
[CyclicTableBased, _options.merge({'remarks'=>_remarks, 'indices' => _IndicesA})]
RomanB =
[CyclicTableBased, _options.merge({'remarks'=>_remarks, 'indices' => _IndicesB})]
RomanC =
[CyclicTableBased, _options.merge({'remarks'=>_remarks                        })]
RomanD =
[CyclicTableBased, _options.merge({'remarks'=>_remarks, 'indices' => _IndicesD})]
Roman =
[CyclicTableBased, _options]
Shire =

Shire Calendar based on summer solstice date

[SolarYearTableBased, {
  'label'   => 'Shire',
  'indices' => _shire_indices,
  'border'       => '00-00-02',
  'engine_day'   =>   -9,           # Jun 1st is 01-09
  'day_offset'   => -183,           # the day 183 days before summer solstice
  'cycle_offset' => Rational(1,4),  # summer solstice
# 'time_basis'   => '+09:00',       # JST
  'rule_table'   => {
    365 => {'Length'=>[2]+[30]*6+[3]+[30]*6, 'IDs'=>_IDs},
    366 => {'Length'=>[2]+[30]*6+[4]+[30]*6, 'IDs'=>_IDs}
  },
  'note'   => 'ShireWeek'
}]
World =

World calendar based on Gregorian calendar

[SolarYearTableBased, {
  'label'   => 'World',
  'rule_table'       => {
    365  => {'Length'=>[31,30,30] * 3 + [31,30,31]},
    366  => {'Length'=>[31,30,30,31,30,31] * 2}
  },
  'note'   => 'WorldWeek'
}]
Coptic =

Coptic Calendar in Egypt and Ethiopia

[{'Epoch'=>{'284Y'=>{'origin_of_MSC' =>   1},
                        '0Y'=>{'origin_of_MSC' => 285},
                        '8Y'=>{'origin_of_MSC' => 277,
                               'label'         => 'Coptic::Ethiopian',
                               'indices'       => _ethiopian_month_indices}}}, CyclicTableBased, {
  'label'         => 'Coptic::Coptic',
  'origin_of_LSC' => 1825030,
  'origin_of_MSC' =>       1,
  'diff_to_CE'    =>     285,
  'indices'       => _egyptian_month_indices,
  'rule_table' => {
    'T' => {'Rule'  =>[365,365,366,365]},
    365 => {'Length'=>[30]*12+[5]},
    366 => {'Length'=>[30]*12+[6]}
  }
}]
Ptolemaic =
[CyclicTableBased, {
  'label'         => 'Coptic::Ptolemaic',
  'remarks'       => When.M17n('Coptic::based on Chris Bennett "Egyptian Dates" (Retrieved 2014-06-29)'),
  'origin_of_LSC' => 1600478,
  'origin_of_MSC' =>    -330,
  'indices'       => _egyptian_month_indices,
  'rule_table' => {
    'T' => {'Rule'  =>[365]},
    365 => {'Length'=>[30]*12+[5]}
  }
}]
FrenchRepublican =

French Calendar

[SolarYearTableBased, {
  'label'   => 'French::FrenchRepublican',
  'indices' => [
     When.Index('French::Month', {:unit =>13}),
     When::Coordinates::DefaultDayIndex
   ],
   'origin_of_MSC' => -1791,
   'epoch_in_CE'   => +1792,
   'cycle_offset'  => Rational(1,2),
   'time_basis'    => '+00:09:20',
   'rule_table'    => {
     365 => {'Length'=>[30] * 12 + [5]},
     366 => {'Length'=>[30] * 12 + [6]}
   }
}]
FrenchRepublicanRomme =

FrenchRepublicanRomme

[CyclicTableBased, {
  'label'   => 'French::FrenchRepublican (Romme)',
  'origin_of_LSC' => 2381318,
  'origin_of_MSC' => 16,
  'before'        => 'FrenchRepublican',
  'indices' => [
     When.Index('French::Month', {:unit =>13}),
     When::Coordinates::DefaultDayIndex
   ],
  'rule_table'    => _rule_table400
}]
FrenchRepublicanContinuous =

FrenchRepublicanContinuous

[CyclicTableBased, {
  'label'   => 'French::FrenchRepublican (Continuous)',
  'origin_of_LSC' => 2380953,
  'origin_of_MSC' => 15,
  'before'        => 'FrenchRepublican',
  'indices' => [
     When.Index('French::Month', {:unit =>13}),
     When::Coordinates::DefaultDayIndex
   ],
  'rule_table'    => _rule_table400
}]
FrenchRepublicanTropical =

FrenchRepublicanTropical

[CyclicTableBased, {
  'label'   => 'French::FrenchRepublican (128)',
  'origin_of_LSC' => 2382779,
  'origin_of_MSC' => 20,
  'before'        => 'FrenchRepublican',
  'indices' => [
     When.Index('French::Month', {:unit =>13}),
     When::Coordinates::DefaultDayIndex
   ],
  'rule_table'    => _rule_table128
}]
IndianNationalSolar =

Indian national solar calendar

[SolarYearTableBasedWithSunrise, {
  'label'   => 'Indian::IndianNationalSolar',
  'origin_of_MSC' => -78,
  'diff_to_CE'    =>   0,
  'engine_month'  =>   2,   # February
  'engine_day'    => 28+22, # 22nd of next month
  'indices' => [
     When.Index('Indian::LunarMonth', {:unit =>12, :shift=>4}),
     When::Coordinates::DefaultDayIndex
   ],
  'rule_table'    => {
    365  => {'Length'=>[30] + [31]*5 + [30]*6},
    366  => {'Length'=>       [31]*6 + [30]*6}
  }
}]
Nanakshahi =

Nanakshahi Calendar

[SolarYearTableBased, {
  'label'   =>  'Indian::Nanakshahi',
  'origin_of_MSC' => -1468,
  'diff_to_CE'    =>     0,
  'engine_month'  =>     3,
  'engine_day'    =>    14,
  'indices' => [
    When.Index('Indian::NanakshahiMonth', {:unit=>12, :shift=>4}),
    When::Coordinates::DefaultDayIndex
  ],
  'rule_table'    => {
    365 => {'Length'=> [31]*5 + [30]*7},
    366 => {'Length'=> [31]*5 + [30]*6 + [31]}
  }
}]
RevisedBengali =

Revised Bengali Calendar

[SolarYearTableBased, {
  'label'   =>   'Indian::RevisedBengali',
  'origin_of_MSC' => -593,
  'diff_to_CE'    =>    0,
  'engine_month'  =>    4,
  'engine_day'    =>   14,
  'indices' => [
    When.Index('Indian::BengaliMonth', {:unit=>12, :shift=>5}),
    When::Coordinates::DefaultDayIndex
  ],
  'rule_table'    => {
    365 => {'Length'=> [31]*5 + [30]*7},
    366 => {'Length'=> [31]*5 + [30]*5 + [31, 30]}
  }
}]
VikramSambatSolar =

Vikram Sambat Solar Calendar defined by Table

PatternTableBasedSolar, {
  'label'   =>   'Indian::VikramSamvat',
  'indices' => [
      When.Index('Indian::SolarMonth'),
      When::Coordinates::DefaultDayIndex
    ],
  'origin_of_MSC' => 2002,
  'origin_of_LSC' => 2431559,
  'epoch_in_CE'   => 1945,
  'before'        => 'VikramSamvatSolar',
  'after'         => 'VikramSamvatSolar',
  'rule_table'    => %w(112210900900)
}
Hebrew =

Hebrew Calendar (alias of Jewish Calendar)

Jewish
Korean =

正月:A, 2月:B, 3月:C, 4月:D, 5月:E, 6月:F, 7月:G, 8月:H, 9月:I, 10月:J, 11月:K, 12月:L 大の月:大文字, 小の月:小文字 同じアルファベットの連続の後者:閏月 #- は『韓國年暦大典』(1987年版)の中国-朝鮮差分が取り消されたもの #! は全勇勳「朝鮮における時憲曆の受容過程とその思想的背景」で言及された年(最終的には差分でない)

PatternTableBasedLuniSolar.join([
  PatternTableBasedLuniSolar,
  {
    'indices'=>  ChineseIndices,
    'before' => 'ChineseTwin::太初暦',
    'after'  => 'ChineseLuniSolar?time_basis=+09',
    'note'   => 'Chinese',
  },
  ['Chinese_103',  -60.. 263],             # 前漢~蜀漢(太初暦・四分暦)
  ['Chinese0239',  264.. 444],             # 三国・南朝(景初暦)
  ['Chinese0445',  445.. 589],             # 南朝(元嘉暦・大明暦)
  ['Chinese0523',  590.. 946],             # 隋・唐~五代前期(大業暦~調元暦)
  ['Chinese0956',  947..1279],             # 五代後期~南宋(調元暦~本天暦)
  ['Chinese0939', 1280..1653],             # 元・明・南明(重修大明暦・授時暦・大統暦)
  ['Chinese1645', 1654..1911]],            # 清(時憲暦)
  {
   -26 => {'aB'   => 'Ab'  },            # ベースとする中国暦日表の違い
   240 => {'Hi'   => 'hI'  },            # 四分・景初・乾象暦いずれにも不一致

   478 => {'bC'   => 'Bc'  },            # 日食記事による見直し(景初・元嘉・三紀・玄始暦いずれにも不一致)
   502 => {'D'    => 'E'   },            # 中国暦日表を計算による元嘉暦に戻す
   559 => {'De'   => 'eE'  },            # 日食記事による見直し(元嘉・大明・興和・天保・正光暦いずれにも不一致)
   575 => {'i'    => 'h'   },            # ベースとする中国暦日表の違い

   592 => {'FgHi' => 'fgHI'},
   716 => {'lL'   => 'Ll'  },            # ベースとする中国暦日表の違い
   768 => {'bC'   => 'Bc'  },
   795 => {'H'    => 'G'   },            # ベースとする中国暦日表の違い
   935 => {'Kl'   => 'kL'  },            # 宣明暦に一致(崇玄暦とは不一致)

  1022 => {'aB'  => 'Ab'  },             # 宣明暦に一致
  1025 => {'fG'  => 'Fg'  },             # 宣明・遼の大明暦に一致
  1032 => {'cD'  => 'Cd'  },
  1040 => {'dE'  => 'De', 'K'  => 'k' }, # 5月朔は宣明・遼の大明暦に一致
  1041 => {'a'   => 'A',  'Jk' => 'jK'}, # 12月朔は宣明・遼の大明暦に一致
  1048 => {'l'   => 'L'   },
  1049 => {'A'   => 'a',  'Kl' => 'kL'}, # 12月朔は宣明・遼の大明暦に一致
  1058 => {'l'   => 'L'   },
  1059 => {'A'   => 'a',  'Kl' => 'kL'}, # 12月朔は宣明・遼の大明暦に一致
  1067 => {'bC'  => 'aB'  },             # 宣明暦に一致(閏月2か月ずれ)
  1073 => {'kL'  => 'Kl'  },
  1078 => {'gHI' => 'GHi' },
  1079 => {'Ef'  => 'eF'  },
  1096 => {'bcDefGhIJKl' => 'BCdeFGhijkL' },
  1114 => {'bC'  => 'Bc'  },
  1118 => {'dE'  => 'De'  },
  1149 => {'efG' => 'Efg' },
  1244 => {'fGH' => 'FGh' },
  1252 => {'eF'  => 'Ef'  },
  1253 => {'Hi'  => 'hI'  },             # 重修大明暦に一致(たまたま?宣明暦にも一致)
  1270 => {'jjK' => 'jKk' },             # 重修大明暦に一致
  1276 => {'Ab'  => 'aB'  },             # 重修大明暦に一致

  1287 => {'bCD' => 'BCd' },             # ベースとする中国暦日表の違い
  1300 => {'HIj' => 'hIJ' },
  1365 => {'aB'  => 'Ab'  },
  1397 => {'bC'  => 'Bc'  },
  1399 => {'De'  => 'dE'  },
  1430 => {'Cd'  => 'cD'  },
   #- 1437 => {'kL'  => 'Kl'  },
  1440 => {'kL'  => 'Kl'  },
  1444 => {'kL'  => 'Kl'  },
  1462 => {'Jk'  => 'jK'  },
  1495 => {'fG'  => 'Fg'  },
  1530 => {'Ab'  => 'aB'  },
  1581 => {'Ij'  => 'iJ'  },
  1588 => {'bCD' => 'BCd','Kl' =>'kL'},
  1597 => {'Hi'  => 'hI'  },
   #- ,        'L'   =>'l' },
   #- 1598 => {'a'   => 'A'   },
  1599 => {'l'   => 'L'   },
  1600 => {'A'   => 'a'   },
  1602 => {'hI'  => 'Hi'  },
  1608 => {'l'   => 'L'   },
  1609 => {'A'   => 'a'   },
   #- 1615 => {'Fg'  => 'fG', 'Hh' =>'hH'},
   #- 1619 => {'L'   => 'l'   },
   #- 1620 => {'a'   => 'A'   },
   #- 1642 => {'Fg'  => 'fG'  },
   #- 1644 => {'fG'  => 'Fg'  },
   #- 1649 => {'iJ'  => 'Ij'  },
   #- 1650 => {'kL'  => 'Kl'  },
  1652 => {'hIJ' => 'HIj' },

   #- 1664 => {'bC'  => 'Bc'  },
   #- 1674 => {'aB'  => 'Ab'  },
  1677 => {'iJ'  => 'Ij'  },
  1698 => {'jK'  => 'Jk'  },
   #! 1705 => {'Kl'  => 'kL'  },
  1709 => {'aB'  => 'Ab', 'jK' =>'Jk' },
  1727 => {'cC'  => 'Cc'  },
  1730 => {'Cd'  => 'cD'  },
   #! 1735 => 『英祖實録』巻38 10年4月10日(乙卯) 是以我國明年曆與彼國所同者,只是置閏與月朔大小,而節候則日時皆不同
  1751 => {'Jk'  => 'jK'  },
  1778 => {'Cd'  => 'cD'  },
  1841 => {'kL'  => 'Kl'  }
})
TenrekiA =

太平天国 2.1.1-3.2.30

[CyclicTableBased, {
  'origin_of_LSC'  =>  2397523,
  'origin_of_MSC'  =>  1852,
  'indices' => [
     When.Index('Chinese::Month', {:unit =>12}),
     When::Coordinates::DefaultDayIndex
   ],
  'rule_table'     => {
    'T' => {'Rule'  =>[365]},
    365 => {'Length'=>[31,30]*5 + [30]*2}
  }
}]
TenrekiB =

太平天国 3.3.1-

[CyclicTableBased, {
  'origin_of_LSC'  =>  2397522,
  'origin_of_MSC'  =>  1852,
  'indices' => [
     When.Index('Chinese::Month', {:unit  =>12}),
     When.Index({:shift => 1})
   ],
  'rule_table'     => {
    'T' => {'Rule'  =>[366]},
    366 => {'Length'=>[31,30]*6}
  },
  'note' => 'Default'
}]
Yi =

[CyclicTableBased, {
  'label'   => 'Chinese::Yi',
  'origin_of_LSC'  =>  1721431,
  'origin_of_MSC'  =>  1,
  'indices' => [
     When.Index('Yi::Month', {:unit  =>11}),
     When::Coordinates::DefaultDayIndex
   ],
  'rule_table'     => {
    'T' => {'Rule'  =>[365, 365, 365, 366]},
    365 => {'Length'=>[36]*10 + [5]},
    366 => {'Length'=>[36]*10 + [6]}
  },
  'note' => 'Yis'
}]
Goddess =

Goddess Calendar

[CyclicTableBased, {
  'label'         => 'Goddess::Goddess',
  'origin_of_LSC' => 2415611 - 180432,  # 1901-08-14 Base Cycle = No.1
  'note'          => [['_m:Calendar::Month'],
                      ['_co:Common::Week', '_n:Ephemeris/Notes::day::Moon_Age']],
  'indices'       => [
    When.Index({:unit=>470}),
    When.Index('Goddess::Month'),
    When::Coordinates::DefaultDayIndex,
  ],
  'rule_table' => {
    'T' => {'Rule'  =>(['L'] * 9 + ['S']) * 23 +
                      (['L'] * 4 + ['S']) *  2 +
                      (['L'] * 9 + ['S']) * 23},
    'L' => {'Length'=>[30, 29] * 6 + [30]},
    'S' => {'Length'=>[30, 29] * 6 + [29]}
  }
}]
SolarHijri =

Solar Hijri Calendar

[SolarYearTableBased, {
  'label'         => 'Iranian::SolarHijri',
  'indices'       => _indicesM,
  'origin_of_MSC' => -621,
  'epoch_in_CE'   =>  621,
  'cycle_offset'  => 0,
  'time_basis'    => '+15:30',
  'rule_table'    => {
    365 => {'Length'=>[31] * 6 + [30] * 5 + [29]},
    366 => {'Length'=>[31] * 6 + [30] * 6}
  }
}]
SolarHijriAlgorithmic =

Solar Hijri Algorithmic Calendar

[CyclicTableBased, {
  'label'         => 'Iranian::SolarHijriAlgorithmic',
  'indices'       => _indicesM,
  'origin_of_LSC' => 1948321 + 173125,
  'origin_of_MSC' => 475,
  'epoch_in_CE'   => 621,
  'rule_table'    => {
    'T'    => {'Rule' =>['C128'] * 21 + ['C132']},
    'C128' => {'Rule' =>['C29'] + ['C33'] * 3},
    'C132' => {'Rule' =>['C29'] + ['C33'] * 2 + ['C37']},
    'C29'  => {'Rule' =>[365] + ([365] * 3 + [366]) * 7},
    'C33'  => {'Rule' =>[365] + ([365] * 3 + [366]) * 8},
    'C37'  => {'Rule' =>[365] + ([365] * 3 + [366]) * 9},
     365   => {'Length'=>[31] * 6 + [30] * 5 + [29]},
     366   => {'Length'=>[31] * 6 + [30] * 6}
  }
}]
Jalali =

Jalali Calendar

[HinduSolar, {
  'label'   => 'Iranian::Jalali',
  'indices' => _indicesM,
  'type'    => 'SBH'
}]
TableBasedJalali =

Table Based Jalali Calendar

[CyclicTableBased, {
  'label'         => 'Iranian::JalaliAlgorithmic',
  'indices'       => _indicesJ,
  'origin_of_LSC' => 1948321 + 173125,
  'origin_of_MSC' => 475,
  'epoch_in_CE'   => 621,
  'rule_table'    => {
    'T'    => {'Rule' =>['C128'] * 21 + ['C132']},
    'C128' => {'Rule' =>['C29'] + ['C33'] * 3},
    'C132' => {'Rule' =>['C29'] + ['C33'] * 2 + ['C37']},
    'C29'  => {'Rule' =>[365] + ([365] * 3 + [366]) * 7},
    'C33'  => {'Rule' =>[365] + ([365] * 3 + [366]) * 8},
    'C37'  => {'Rule' =>[365] + ([365] * 3 + [366]) * 9},
     365   => {'Length'=>[30] * 12 + [5]},
     366   => {'Length'=>[30] * 12 + [6]}
  }
}]
Borji =

Borji Calendar

[EphemerisBasedSolar, {
  'label'         => 'Iranian::Borji',
  'indices'       => _indicesS,
  'origin_of_MSC' => -621,
  'epoch_in_CE'   =>  621,
  'cycle_offset'  => 0,
  'time_basis'    => '+15:30'
}]
TableBasedBorji =

Table Based Borji Calendar

PatternTableBasedSolar, {
  'label'         => 'Iranian::SolarHijri (Combined)',
  'indices'       => _indicesM,
  'origin_of_MSC' => 1230,
  'origin_of_LSC' => 2397203,
  'epoch_in_CE'   =>  621,
  'before'        => 'Borji',
  'after'         => 'SolarHijriAlgorithmic',
  'rule_table'=> %w(
  112111000900 011211000900  012111190900 111121009090  111211000900
  011211000900 012111190900  111120109090 111211009000  011211000900
  012111190900 021120109090  111211009090 111211000900  012111190900
  012120109090 111211009090  111211000900 012111190900  012120109090
  111121009090 111211000900  012111000900 012111109090  111121009090
  111211000900 011211000900  012111109090 111121009090  111211000900
  011211000900 012111109900  111121009090 111211000900  011211000900
  012111109900 111121009090  111211000900 011211000900  012111190900
  111120109090 111211009000  011211000900 012111190900  012120109090
  111211009090 111211000900  012111190900 012120109090  111121009090
  111211000900 012111190900  012111109090 111121009090  111211000900
  011211000900 012111109090  111121009090 111211000900  011211000900
  012111109090 111121009090  111211000900 011211000900  012111109090
  111121009090 111211000900  011211000900 012111109900  111120109090
  111211000900 011211000900  012111190900 012120109090)
}
TabularIslamic =

Tabular Islamic Calendar

[CyclicTableBased, {
  'label' => 'Islamic::TabularIslamic',
  'origin_of_LSC'  =>  1948440-354,
  'indices' => [
     When.Index('Islamic::Month', {:unit =>12}),
     When::Coordinates::DefaultDayIndex
   ],
  'rule_table'     => {
    'T' => {'Rule'  =>[['L',2], 'S', ['L',3], 'S', ['L',2], 'S', 'L']},
    'L' => {'Rule'  =>[354, 354, 355]},
    'S' => {'Rule'  =>[354, 355]},
    354 => {'Length'=>[30,29] * 6           },
    355 => {'Length'=>[30,29] * 5 + [30] * 2}
  }
}]
Darian =

Darian Calendar

[CyclicTableBased, {
  'label'         => 'Martian::Darian',
  'time_basis'    => 'MTC',
  'origin_of_LSC' =>  -94798,
  'indices' => [
     When.Index('Martian::DarianMonth', {:unit =>24}),
     When::Coordinates::DefaultDayIndex
   ],
  'rule_table' => {
    'T'             => {'Rule' =>['LongCentury', ['ShortCentury', 4]]},
    'LongCentury'   => {'Rule' =>[               ['LongDecade',  10]]},
    'ShortCentury'  => {'Rule' =>['ShortDecade', ['LongDecade',   9]]},
    'LongDecade'    => {'Rule' =>[669] * 2 + [668, 669] * 4 }, 
    'ShortDecade'   => {'Rule' =>            [668, 669] * 5 },
    668  => {'Length'=>[28, 28, 28, 28, 28, 27] * 4           },
    669  => {'Length'=>[28, 28, 28, 28, 28, 27] * 3 + [28] * 6}
  },
  'note'   => 'DarianWeek'
}]
Armenian =

Armenian Calendar

[CyclicTableBased, {
  'label'         => 'Armenian',
  'origin_of_LSC' => 1922868,
  'origin_of_MSC' =>       1,
  'epoch_in_CE'   =>     552,
  'indices'       => [
    When.Index('Armenian::Month', {:unit =>13}),
    When::Coordinates::DefaultDayIndex
  ],
  'rule_table' => {
    'T' => {'Rule'  =>[365]},
    365 => {'Length'=>[30]*12+[5]}
  }
}]
BalineseLuniSolar1965 =
[BalineseLuniSolar, {
  'day_epoch'  => 1749594, # CE78-02-16
  'day_border' => 0,       # Friday
  'rule_table' => intercalary_pattern_1
}]
BalineseLuniSolar1971 =
[BalineseLuniSolar, {
  'day_epoch'  => 1749594, # CE78-02-16
  'day_border' => -23,     # Wednesday
  'rule_table' => intercalary_pattern_1
}]
BalineseLuniSolar1993 =
[BalineseLuniSolar, {
  'day_epoch'  => 1749594, # CE78-02-16
  'day_border' => -23,     # Wednesday
  'rule_table' => intercalary_pattern_2
}]
BalineseLuniSolar2000 =
[BalineseLuniSolar, {
  'day_epoch'  => 1749593, # CE78-02-15
  'day_border' => -23,     # Tuesday
  'rule_table' => intercalary_pattern_2
}]
BalineseLuniSolar2003 =
[BalineseLuniSolar, {
  'day_epoch'  => 1749593, # CE78-02-15
  'day_border' => -23,     # Tuesday
  'rule_table' => intercalary_pattern_1
}]
Tenganan =

Tenganan Calendar

[CyclicTableBased, {
  'label'         => 'Balinese::Tenganan',
  'origin_of_LSC' =>  1095 * 1573 - 381,
  'origin_of_MSC' =>  1,
  'note'          => [['_m:Calendar::Month'],
                      ['_n:Balinese/Notes::day::Triwara', '_n:Balinese/Notes::day::Pantjawara']],
  'indices' => [
     When.Index('Balinese::TengananMonth'),
     When::Coordinates::DefaultDayIndex
   ],
  'rule_table' => {
    'T'  => {'Rule'  =>[360, 383, 352]},
    360  => {'Length'=>[30] * 12},
    383  => {'Length'=>[30] * 6 + [26] * 2 + [30] * 4 + [27]},
    352  => {'Length'=>[30] * 6 + [28] * 2 + [30] * 4 }
  }
}]
Javanese1547 =

Javanese Calendar (SE1547-1674) : Dal年 - 閏年

[CyclicTableBased, {
  'origin_of_LSC' =>  2317690,
  'origin_of_MSC' =>     1555-512,
  'indices' => [
     When.Index('Javanese::IslamicMonth', {:unit =>12}),
     When::Coordinates::DefaultDayIndex
  ],
  'rule_table'    => {
    'T'   => {'Rule'  =>[354, 355, 354, 354, 355, 354, 354, 355]*15, 'Days' => (354*8+3)*15-1},
    354   => {'Length'=>[30,29] * 6           },
    355   => {'Length'=>[30,29] * 5 + [30] * 2}
  },
  'note'  => 'Javanese'
}]
Javanese1675 =

Javanese Calendar (SE1675-1748) : Dal年 - 平年

[CyclicTableBased, {
  'origin_of_LSC' =>  2360214,
  'origin_of_MSC' =>     1675-512,
  'indices' => [
     When.Index('Javanese::IslamicMonth', {:unit =>12}),
     When::Coordinates::DefaultDayIndex
   ],
  'rule_table'    => {
    'T'   => {'Rule'  =>[354, 355, 354, 355, 354, 354, 354, 355]*15, 'Days' => (354*8+3)*15-1},
    354   => {'Length'=>[30,29] * 6                 },
    355   => {'Length'=>[30,29] * 5 + [30] * 2      }
  },
  'note'  => 'Javanese'
}]
Javanese1749 =

Javanese Calendar (SE1749-) : Dal年 - 平年,月日別配当

[CyclicTableBased, {
  'origin_of_LSC' =>  2385728,
  'origin_of_MSC' =>     1747-512,
  'indices' => [
     When.Index('Javanese::IslamicMonth', {:unit =>12}),
     When::Coordinates::DefaultDayIndex
   ],
  'rule_table'    => {
    'T'   => {'Rule'  =>[354, 355, 354, 355, 'D', 354, 354, 355]*15, 'Days' => (354*8+3)*15-1},
    354   => {'Length'=>[30,29] * 6                 },
    'D'   => {'Length'=>[30]*2+[29]*3+[29,30]*3+[30]},
    355   => {'Length'=>[30,29] * 5 + [30] * 2      }
  },
  'note'  => 'Javanese'
}]
Pranatamangsa =

Pranatamangsa

[CyclicTableBased, {
  'label'         => 'Javanese::Pranatamangsa',
  'origin_of_LSC' => 1721232,
  'origin_of_MSC' =>   -1854,
  'indices' => [
     When.Index('Javanese::HinduMonth', {:unit =>12, :shift=>8}),
     When::Coordinates::DefaultDayIndex
   ],
  'rule_table'     => {
    'T'  => {'Rule'  =>['LC', 'SC', 'SC', 'SC']},
    'SC' => {'Rule'  =>[365]*4 + [366, 365, 365, 365]*24},
    'LC' => {'Rule'  =>[366, 365, 365, 365]*25},
    365  => {'Length'=>[41, 23, 24, 25, 27, 43, 43, 26, 25, 24, 23, 41]},
    366  => {'Length'=>[41, 23, 24, 25, 27, 43, 43, 27, 25, 24, 23, 41]}
  }
}]
Sym454 =

Symmetry 454 Calendar

[CyclicTableBased, {
  'label'   => 'Symmetry::Sym454',
  'origin_of_LSC'  => 1721062,
  'rule_table'       => {
    'T'  => {'Rule'  =>_pattern},
    364  => {'Length'=>[28,35,28] * 4},
    371  => {'Length'=>[28,35,28] * 3 + [28,35,35]}
  }
}]
Sym010 =

Symmetry 010 Calendar

[CyclicTableBased, {
  'label'   => 'Symmetry::Sym010',
  'origin_of_LSC'  => 1721062,
  'rule_table'       => {
    'T'  => {'Rule'  =>_pattern},
    364  => {'Length'=>[30,31,30] * 4},
    371  => {'Length'=>[30,31,30] * 3 + [30,31,37]}
  }
}]
Babylonian =

Chris Bennett

[PatternTableBasedLuniSolar, {
  'label'        => 'AncientOrient::Babylonian',
  'remarks'      => _remarksCB,
  'origin_of_LSC'=> 1492871,
  'origin_of_MSC'=> -625,
  'rule_table'   => _table_CB,
  'indices'      => _babylonian
  }
]
Seleucid =
[PatternTableBasedLuniSolar, {
  'label'        => 'AncientOrient::Seleucid',
  'remarks'      => _remarksCB,
  'origin_of_LSC'=> 1492871,
  'origin_of_MSC'=> -314,
  'epoch_in_CE'  => -311,
  'rule_table'   => _table_CB,
  'indices'      => _seleucid
  }
]
BabylonianPDE =
    1. Parker & W. H. Dubberstein

PatternTableBasedLuniSolarWithEphemeris, {
'label'        => 'AncientOrient::Babylonian',
'remarks'      => _remarksPD,
'origin_of_LSC'=> 1492871,
'origin_of_MSC'=> -625,
'engine'       => 'ChineseLuniSolar?time_basis=+03',
'rule_table'   => %w(              N N A N N U N A N N U N
                     A N N U N N N U A N N U N N U N U N U
                     N A N N A N N A N N N U N A N N A N A
                     N N U N A N N A N N N N U A N N A N N
                     A N A N A N N A N N N U N A N N A N N
                     N U A N N A N N U N N U N A N N A N N
                     U N A N N A N N U N A N N A N N U N N
                     A N A N N A N a N N A N N A N N U N A
                     N N a N N a N A N N A N N A N N U N A
                     N N A N N a N A N N A N N A N N A N A
                     N N A N N a N A N N A N N A N N A N A
                     N N A N N A N A N N A N N A N N U N A
                     N N A N N A N A N N A N N a N N U N A
                     N A N N N A N A N N A N N A N N U N A
                     N N A N N A N A N N A N N A N N U N A
                     N N A N N A N A N N A N N A N N U N A),
'subkey_table' => {'N'=>'ABCDEFGHIJKL',
                   'A'=>'ABCDEFGHIJKLL',
                   'a'=>'ABCDEFGHIJKLL',
                   'U'=>'ABCDEFFGHIJKL'
                  },
'indices'      => _babylonian
}
BabylonianPD =
[PatternTableBasedLuniSolar, {
  'label'        => 'AncientOrient::Babylonian',
  'remarks'      => _remarksPD,
  'origin_of_LSC'=> 1492871,
  'origin_of_MSC'=> -625,
  'rule_table'   => _table_PD,
  'indices'      => _babylonian
  }
]
SeleucidPD =
[PatternTableBasedLuniSolar, {
  'label'        => 'AncientOrient::Seleucid',
  'remarks'      => _remarksPD,
  'origin_of_LSC'=> 1492871,
  'origin_of_MSC'=> -314,
  'epoch_in_CE'  => -311,
  'rule_table'   => _table_PD,
  'indices'      => _seleucid
  }
]
Positivist =

Positivist calendar based on Gregorian calendar

[SolarYearTableBased, {
  'label'   => 'Positivist::Positivist',
  'indices' => [
      When.Index('PositivistWeekNotes::month::Month', {:unit =>13}),
     When::Coordinates::DefaultDayIndex
    ],
  'origin_of_MSC'    => -1788,
  'diff_to_CE'       =>     0,
  'rule_table'       => {
    365  => {'Length'=>[28]*12 + [29]},
    366  => {'Length'=>[28]*12 + [30]}
  },
  'note'   => 'PositivistWeek'
}]
Vietnamese1544 =

欽授暦 1544 - 1788

PatternTableBasedLuniSolar, {
'origin_of_MSC'=>1544, 'origin_of_LSC'=>2285027, 'indices'=> ChineseIndices,
'before' => 'Chinese0939', 'after' => 'Vietnamese1789', 'note' => 'Chinese',
'rule_table'=> %w(        AbCdEFgHiJkL  aAbCdEfGHiJKl
  aBcdEfGHIjKL abCdeFgHIiJKL abCdeFgHiJKL  aBcDefGhIjKL AbCdEffGhIjKl

  ABCdEfgHiJkL aBCdEfGhIjKl  AbCcDEfGhIjKl  AbCdEfGHiJkL aBcdEfGHiJKkL
  aBcdEfGhIJKl AbCdeFgHiJKL  aBcDefGghIJKl  ABcDefGhIjKl ABcDEfgHiJkL
  aBcDEeFgHiJkL  aBcDeFGhIjKl AbcDeFGhIJkL  aBbcDeFgHIJkL  aBcdEfGhIJKl
  AbCdeFghIJjKL  AbCdeFghIJkL ABcDefGhiJkL  ABcDeFfGhIjKl  AbCDeFgHiJkL
  abCDeFgHIjKl AbbCdEfGHIjKl AbcDeFgHIjKL  aBcdEfgHIjKLL  aBcdEfgHiJKL
  AbCdeFghIjKL AbCDefGhhIjKL aBCdEfGhiJkL  aBCdEFgHiJkl AbCdDEfGHiJkL
  abCdEfGHiJKl AbcDefGHiJKL  aBbcDefGhIJKL  aBcdEfgHiJKL aBCdeFghIiJKl
  ABcDeFghIjKl ABCdEfGhiJkL  aBCdEfFGhIjkL  aBcDeFGhIJkL abCdEfGHiJKl
  AbcCdeFgHIJKl  AbcDefGhIJKl ABcdEfgHiJKkL AbCdEfgHiJkL  ABcDeFghIjKl
  ABcDEfGhhIjKl  AbCDeFgHiJkL aBcDeFGhIjKL  abCddEFgHIjKL  abCdeFgHIJkL

  AbcDefGhIJkL ABbcDefGhIjKL AbCdEfgHiJkL  AbCDeFghIiJkL  aBCdEfGhIjKl
  AbCdEFgHiJkL aBcDeFfGHiJkL aBcdEfGHIjKL  abCdeFgHIjKL aBcCdeFgHiJKL
  aBcDefGhIjKL AbCdEfgHiJkKl ABCdEfgHiJkL  aBCdEfGhIjKl AbCdEFgHhIjKl
  AbcDEFgHiJkL aBcdEfGHiJKl  AbCddEfGhIJKl  AbCdeFghIJKL aBcDefGhiJKl
  ABcCDefGhiJKl  ABcDeFgHiJkL aBcDEfGhIjJkL aBcDeFGhIjKl  AbcDeFGhIJkL
  aBcdEfFgHIJkL  aBcdEfgHIJKl AbCdeFghIJkL  ABcDdeFghIJkL  ABcDefGhiJkL
  ABcDeFgHijKkL  AbCDeFgHiJkl AbCDeFgHIjKl  AbcDeFgHHIjKl  AbcDeFgHIjKL
  aBcdEfgHIjKL AbCddEfgHiJKL AbCdeFghIjKL  AbCdEfGhiJkL AaBCdEfGhiJkL
  aBCdEFgHiJkL abCdEFgHIjKkL abCdEfGHiJKl  AbcDefGHiJKL aBcdEffGhIJKL
  aBcdEfgHiJKL aBCdeFghIjKL  aBCdDeFghIjKl  ABcDEfGhiJkL aBCdEfGHiJkkL

  aBcDeFGhIJkL abCdEfGhIJKl  AbcDefGgHIJkL  AbcDefGhIJKl ABcdEfgHiJKl
  ABcDeEfgHiJkL  ABcDeFghIjKl ABcDEfGhiJkL  aAbCDeFgHiJkL  aBcDeFGhIjKl
  AbCdeFGhIJjKL  abCdeFgHIJkL AbcDefGhIJkL  AbCdEffGhIjKL  AbCdEfgHiJkL
  AbCDeFghIjKl AbCDdEfGhIjKl AbCdEFgHiJkL  aBcDeFgHIjKlL  aBcdEfGHIjKl
  AbCdeFgHIjKL aBcDefGhHiJKL aBcDefGhIjKL  aBCdEfgHijKL aBCDeeFgHiJkL
  aBCdEfGhIjKl AbCdEfGHiJkL  aBbcDeFGHiJkL  aBcdEfGHiJKl AbCdeFgHiJJKl
  AbCdeFghIJKL aBcDefGhiJKl  ABCdEffGhiJKl  ABcDeFgHijKL aBcDEfGhIjKl
  AbCcDeFGhIjKl  AbcDeFGhIJkL aBcdEfGhIJKl  AaBcdEfgHIJKl  AbCdeFghIJkL
  ABcDefGhhIJkL  AbCDefGhiJkL AbCDeFgHijKl  ABcDeEFgHiJkl  AbCdEFgHIjKl
  AbcDeFgHIJkL aBbcDeFgHIjKL aBcdEfgHIjKL  AbCdeFghIiJKL  AbCdeFghIjKL

  AbCdEfGhiJkL AbCDeFgGhiJkL aBCdEfGHiJkl  AbCdEFgHIjKl aBccDEfGHiJKl
  AbcDefGHiJKL aBcdEfgHiJKL  AaBcdEfgHiJKL  aBCdeFghIjKL aBCdEfGhhIjKl
  ABcDEfGhiJkL aBcDEfGhIjKl  AbCdEeFGhIJkl  AbCdeFGhIJKl AbcDefGhIJKL
  aBbcDefGhIJKl  ABcdEfgHiJKl ABcDeFghIjJkL ABcDeFghIjKl  ABcDeFgHiJkL
  aBcDEfGgHiJkL  aBcDeFGhIjKl AbCdeFGhIJkL  AbcDdeFgHIJkL  AbcDefGhIJkL
  AbCdEfgHiJkLL  AbCdEfgHiJkL AbCDefGhIjKl  AbCDeFgHhIjKl  AbCdEFgHiJkL
  aBcdEFgHIjKl AbCddEfGHIjKl AbCdeFgHiJKL  aBcDefGhIjKL AbCcDefGhiJKL
  aBCdEfgHijKL aBCdEfGhIjKkL aBCdEfGhIjKl  AbCdEfGHiJkL aBcdEfGGHiJkL
  aBcdEfGHiJKl AbCdeFgHiJKL  aBcDdefGhIJKl  ABcDefgHiJKl ABCdeFgHijKLl
  ABcDeFgHijKl ABcDEfGhIjKl  aBcDEfGHiIjKl  aBcDeFGhIJkL aBcdEfGhIJKl

  AbCdeeFgHIJkL  AbCdefGhIJkL ABcDefgHiJkL  ABbCdEfGhiJkL  AbCDeFgHijKl
  ABcDeFGhIjKkl  AbCdEFgHIjKl aBcDeFgHIJkL  aBcdEffGHIjKL  aBcdeFgHIjKL
  AbCdefGhIjKL ABcDdefGhIjKL AbCdEfGhiJkL  AbCDeFgHijKlL  aBCdEfGHijKl
  AbCdEFgHiJKl aBcDeFgHIiJKl AbcDefGHiJKL  aBcdeFgHiJKL AbCdeeFgHiJKL
  aBcDefGhIjKL aBCdEfGhiJkL  aBBcDEfGhiJkL  aBcDEfGhIjKl AbCdEfGHiJKkl
  AbCdeFGhIJKl AbcDefGhIJKl  ABcdeFfGhIJKl  AbCdeFgHiJKl ABcDeFghIjKl
  ABCdEefGhIjKl  ABcDeFgHiJkL aBcDeFGhIjKl  AaBcDeFgHIjKl  AbCdeFgHIJkL
  aBcDefGhIIJkL  aBcDefGhIjKL AbCdEfgHiJkL)
}
Vietnamese1789 =

西山朝の暦 1789-1801

PatternTableBasedLuniSolar, {
'origin_of_MSC'=>1789, 'origin_of_LSC'=>2374505, 'indices'=> ChineseIndices,
'before' => 'Vietnamese1544', 'after' => 'Vietnamese1631', 'note' => 'Chinese',
'rule_table'=> %w(        ABcDeeFgHiJkL AbCDefGhIjKl
  AbCDeFgHiJkL aBcDdEFgHiJkL aBcdEFgHIjKl  AbcDeFgHIJkL aBbcDeFgHIjKL
  aBcDefgHIjKL AbCdEffgHiJKL aBCdeFghIjKL  aBCdEfGhIjkL AbCdDEfGhIjKl

  aBCdEfGHiJkL)
}
Vietnamese1631 =

萬全暦 1631-1812

PatternTableBasedLuniSolar, {
'origin_of_MSC'=>1631, 'origin_of_LSC'=>2316802, 'indices'=> ChineseIndices,
'before' => 'Vietnamese1544', 'after' => 'Vietnamese1813', 'note' => 'Chinese',
'rule_table'=> %w(
  ABcDeFgHiJklL  AbCDeFgHiJkL aBcDeFGhIjKl  AbcDeFGhHIjKl  AbcDeFgHIjKL
  aBcdEfgHIjKL AbCddEfgHiJKL AbCdeFghIjKL  AbCDefGhiJkL AaBCdEfGhIjkL
  AbCdEFgHiJkL abCdEFgHIjKkL abCdEfGHiJKl  AbcDeFgHiJKL aBcdEffGhIJKL
  aBcdEfgHiJKL aBCdeFghIjKL  aBCdDeFghIjKL  aBCdEfGhIjkL aBCdEfGHiJKkl

  aBcDeFGhIJkL abCdEfGHiJKl  AbcDefgGHIJkL  AbcDefGhIJKl ABcdEfgHiJKl
  ABCdeEfgHiJkL  ABcDeFghIjKl ABcDEfGhiJkL  AabCDeFgHIjkL  aBcDeFGhIJkL
  abCdEfGhIJjKL  abCdeFgHIJkL AbcDefGhIJkL  ABcdEffGhIjKL  AbCdEfgHiJkL
  AbCDeFghIjKl AbCDdEfGhIjKl AbCdEFgHiJkL  aBcDeFgHIjKlL  aBcdEfGHIjKl
  AbCdeFgHIjKL aBcDefGhHiJKL aBcDefGhIjKL  AbCdEfgHiJkL aBCDefFgHiJkL
  aBCdEfGhIjKl AbCdEfGHiJkL  aBbCdEfGHiJkL  aBcdEfGHiJKl AbCdeFgHiJJKl
  AbCdeFghIJKL aBcDefGhiJKl  ABCdEffGhiJKl  ABcDeFgHijKl ABcDEfGhIjKl
  aBCdDeFGhIjKl  AbcDeFGhIJkL aBcdEfGhIJKl  AbCcdEfgHIJkL  AbCdeFghIJkL
  ABcDefGghIjKL  AbCDefGhiJkL AbCDeFgHijKl  ABcDeEFgHiJkl  AbCDeFgHIjKl
  AbcDeFgHIJkL aBccDeFgHIjKL aBcdEfgHIjKL  AbCdeFggHiJKL  AbCdeFghIjKL

  AbCdEfGhiJkL AbCDeFgGhiJkL aBCdEfGHiJkl  AbCdEFgHIjKl aBccDEfGHiJKl
  AbcDefGHiJKL aBcdEfgHiJKL  AaBcdEfgHiJKL  aBCdeFghIjKL aBCdEfGhhIjKl
  ABcDEfGhiJkL aBcDEfGhIjKl  AbCdEeFGhIJkl  AbCdEfGhIJKl AbcDefGhIJKL
  aBccDefGhIJKl  ABcdEfgHiJKl ABcDeFghHiJkL ABcDeFghIjKl  ABcDeFgHiJkL
  aBcDEfFgHiJkL  aBcDeFGhIjKl AbCdeFGhIJkL  AbcDdeFgHIJkL  aBcDefGhIjKL
  AbCdEfgHiJkLL  AbCdEfgHiJkL AbCDefGhIjKl  AbCDeFgHhIjKl  AbCdEFgHiJkL
  aBcdEFgHIjKl AbCddEfGHIjKl AbCdeFgHiJKL  aBcDefGhIjKL AbCcDefGhiJKL
  aBCdEfgHijKL aBCdEfGhIjKkL aBCdEfGhIjKl  AbCdEfGHiJkL aBcdEfGGHiJkL
  aBcdEfGHiJKl AbCdeFgHiJKL  aBcDdefGhIJKl  ABcDefgHiJKl ABCdEfgHijKLl
  ABcDeFgHijKl ABcDEfGhIjKl  aBcDEfGHiIjKl  aBcDeFGhIJkL aBcdEfGhIJKl

  AbCdeeFgHIJkL  AbCdefGhIJkL ABcDefgHiJkL  ABbCdEfGhiJkL  AbCDeFgHijKl
  ABcDeFGhIjKkl  AbCdEFgHIjKl aBcDeFgHIJkL  aBcdEffGHIjKL  aBcdeFgHIjKL
  AbCdefGhIjKL ABcDdefGhIjKL AbCdEfGhiJkL  AbCDeFgHijKlL  aBCdEfGHijKl
  AbCdEFgHiJKl aBcDeFgHIiJKl AbcDefGHiJKL  aBcdeFgHiJKL AbCdeeFgHiJKL
  aBcDefGhIjKL aBCdEfGhiJkL  aBBcDEfGhiJkL  aBcDEfGhIjKl AbCdEfGHiJKkl
  AbCdeFGhIJKl AbcDefGhIJKl  ABcdeFfGhIJKl  AbCdeFgHiJKl ABcDeFghIjKl
  ABCdEefGhIjKl  ABcDeFgHiJkL aBcDeFGhIjKl  AaBcDeFgHIjKl  AbCdeFgHIJkL
  aBcDefGhIIJkL  aBcDefGhIjKL AbCdEfgHiJkL  ABcDeeFgHiJkL  AbCDefGhIjKl
  AbCDeFgHiJkL aBbCdEFgHiJkL aBcdEFgHIjKl  AbcDeFgHIJkKl  AbcDeFgHiJKL
  aBcDefgHIjKL AbCdEfggHiJKL aBCdeFghIjKL  aBCdEfGhIjkL AbCDdEfGhIjKl

  aBCdEfGHiJkL abCdEfGHIjKl  AabCdEfGHiJKl  AbcDefGHiJKL aBcDefgHhIJKl
  ABcDefgHiJKl ABCdeFghIjKL  aBCdEfFgHijKl  ABcDEfGhIjkL aBcDEfGHiJkL
  abBcDeFGhIJkL  abCdEfGhIJKl)
}
Vietnamese1813 =

協紀暦以降 1813-2030

PatternTableBasedLuniSolarExtended, {
'origin_of_MSC'=>1813, 'origin_of_LSC'=>2383276, 'indices'=> ChineseIndices,
'before' => 'Vietnamese1631', 'after' => 'ChineseLuniSolar?time_basis=+07',
'note'   => 'Chinese',
'rule_table'=> %w(    AbCdefGhIJKl  ABbCdefGhIJkL  ABcdEfgHiJkL
  ABcDeFfgHiJkL  AbCDeFgHijKl AbCDeFGhIjkL  aBcDdEFgHIjKl  aBcDeFgHIJkL
  abCdeFgHIJkL AbCcdeFgHIjKL AbCdefGhIjKL  AbCdEfgGhIjKL  AbCdEfgHiJkL
  AbCDeFghIjKl AbCDeEfGhIjKl AbCdEFgHiJkL  aBcDeFgHIjKL abCddEfGHiJKL
  abCdeFgHiJKL aBcDefGhIiJKL aBcDefGhIjKL  aBCdEfgHiJkL aBCdEFfgHiJkL
  aBcDEfGhIjKl AbCdEfGHiJkL  aBcDdeFGhIJkL  aBcdEfGhIJKl AbCdeFgHiJKL
  aBcCdeFgHiJkL  ABcDefGhIjKl ABCdEfgGhIjKl ABcDeFgHiJkL  aBcDEfGhIjKl
  AbCdEeFgHIjKl  AbcDeFgHIJkL aBcdEfGhIJKl  AbCddEfgHIjKL  AbCdeFghIJkL

  ABcDefGhhIjKL  AbCDefGhIjkL AbCDeFgHiJkL  aBcDeFGgHiJkL  abCdEFgHIjKl
  AbcDeFgHIJkL aBcdEeFgHiJKL aBcdEfgHIjKL  AbCdeFghIjKL AbCCdeFghIjKL
  aBCdEfGhIjkL AbCdEFgHhIjkL aBCdEfGHiJkL  abCdEfGHiJKl AbcDeEfGHiJKl
  AbcDefGHiJKL aBcdEfgHiJKL  aBCddEfgHiJKl  ABCdeFghIjKl ABCdEfGhiJjKl
  ABcDEfGhIjkL aBcDEfGhIJkL  abCdEfFGhIJkL  abCdEfGhIJKl AbcDefGhIJKl
  ABcdEefGhIJkL  ABcdEfgHiJkL ABcDeFghIjKl  ABcCDeFghIjKl  AbCDeFGhIjkL
  aBcDeFGgHIjKl  aBcDeFgHIjKL abCdeFgHIJkl) + [_year1884] + %w(AbcDefGhIjKL
  AbCdEfgHiJkL AbCDdEfgHiJkL AbCDeFghIjKl  AbCDeFgHiJkL aBbCdEfGHiJkL
  aBcDeFgHIjKL abCdeFfGHiJKL abCdeFgHiJKL  aBcDefGhIjKL AbCdEefGhIjKL
  aBCdEfgHiJkL aBCdEfGhIjKl  AbCcDEfGhIjKl  AbCdEfGHiJkL aBcdEfGHhIJkL

  aBcdEfGhIJKl AbCdeFgHiJKL  aBcDeeFghIJkL  ABcDefGhiJKl ABcDEfgHiJkL
  aBCdDeFgHiJkL  aBcDeFGhIjKl AbcDEfGhIJkL  aBbcDeFgHIJkL  aBcdEfGhIJKl
  AbCdeFfgHIjKL  AbCdeFghIJkL ABcDefGhiJkL  ABcDeEfGhiJkL  AbCDeFgHiJkl
  ABcDeFGhIjKl AbbCdEFgHIjKl AbcDeFgHIjKL  aBcdEfgGHiJKL  aBcdEfgHiJKL
  AbCdeFghIjKL AbCDeeFghIjKL aBCdEfGhiJkL  aBCdEFgHiJkL abCdDEfGHiJkL
  abCdEfGHiJKl AbcDeFgHIjKL  aBbcDefGhIJKL  aBcdEfgHiJKL aBCdeFfgHiJKl
  ABcDeFghIjKl ABCdEfGhiJkL  aBCdEEfGhIjkL  aBcDEfGhIJkL abCdEfGHiJKl
  AbcCdeFGhIJKl  AbcDefGhIJKl ABcdEfgGhIJkL ABcdEfgHiJkL  ABcDeFghIjKl
  ABcDEfFghIjKl  AbCDeFgHiJkL aBcDeFGhIjKl  AbCdDeFgHIjKL  abCdeFgHIJkL
  AbcDefGhIJkL ABbcDefGhIjKL AbCdEfgHiJkL  AbCDeFggHiJkL  aBCdEFghIjKl

  AbCDeFgHiJkL aBcDeEfGHiJkL aBcdEfGHIjKl  AbCdeFgHIjKL aBcCdeFgHiJKL
  aBcDefGhIjKL AbCdEfgHhIjKl ABCdEfgHiJkL  aBCdEfGhIjKl AbCdEFfGhIjKl
  AbCdEfGHiJkL aBcdEfGHiJKl  AbCddEfGhIJKl  AbCdeFgHiJKL aBcDefGhiJKl
  ABCcDefGhiJKl  ABcDEfgHiJkl ABcDEfGgHiJkl ABcDeFGhIjKl  AbcDeFGhIJkL
  aBcdEeFgHIJkL  aBcdEfGhIJkL AbCdeFghIJkL  ABcDdeFghIjKL  AbCDefGhiJkL
  ABcDeFgHhiJkL  AbCDeFgHiJkl AbCDeFgHIjKl  aBcDeFFgHIjKl  AbcDeFgHIjKL
  aBcdEfgHIjKL AbCddEfgHiJKL AbCdeFghIjKL  AbCdEfGhiJkL AbBCdEfGhiJkL
  aBCdEFgHijKl AbCdEFgGHiJkl AbCdEfGHiJKl  AbcDefGHiJKL aBcdEefGhIJKL
  aBcdEfgHiJKL aBCdeFghIjKL  aBCcDeFghIjKl  ABCdEfGhiJkL aBCdEfGhHiJkL
  aBcDeFGhIjKl AbCdEfGhIJKl  AbcDeeFGhIJkL  AbcDefGhIJKl ABcdEfgHiJKl

  ABcDdEfgHiJkL  ABcDeFghIjKl ABcDEfGhiJkL  aBbCDeFgHiJkL  aBcDeFGhIjKl
  AbCdeFGgHIjKl  AbCdeFgHIJkL AbcDefGhIjKL  AbCdEefGhIjKL  AbCdEfgHiJkL
  AbCDeFghIjKl AbCDdEfGhIjKl AbCdEFgHiJkL  aBcDeFgHIiJkL  aBcdEfGHIjKl
  AbCdeFgHIjKL aBcDefFgHiJKL aBcDefGhiJKL  aBCdEfgHijKL aBCDdEfgHijKL
  aBCdEfGhIjKl AbCdEFgHiJkL  aBbcDEfGHiJkL  aBcdEfGHiJKl AbCdeFfGhIJKl
  AbCdeFghIJKl ABcDefGhiJKl  ABCdEefGhiJKl  ABcDeFgHijKl ABcDEfGhIjKl)
}
HankeHenry =

Hanke-Henry Calendar

[CyclicTableBased, {
  'label'         => 'HankeHenry::HankeHenry',
  'origin_of_LSC' => 1721062, # 1721061(Sun) -> 1721062(Mon)
  'indices'       => [
    When.Index('HankeHenry::Month'),
    When::Coordinates::DefaultDayIndex
  ],
  'rule_table'    => {
    'T'  => {'Rule'  =>(2000...2400).to_a.map {|year|
              [When.tm_pos(year,1,1), When.tm_pos(year,12,31)].map {|date| date.to_i % 7}.include?(3) ? 371 : 364
            }},
    364  => {'Length'=>[30,30,31] * 4},
    371  => {'Length'=>[30,30,31] * 4 + [7]}
  }
}]
Zoroastrian =

Zoroastrian Calendar

[CyclicTableBased, {
  'label'   => 'Zoroastrian::Zoroastrian',
  'indices' => [
    When.Index('ZoroastrianNotes::month::Month', {:unit =>13}),
    When::Coordinates::DefaultDayIndex
  ],
  'origin_of_MSC' => 1,
  'origin_of_LSC' => 1952063 + 5 - 365 * 1020,
  'epoch_in_CE'   => 31,
  'rule_table'    => {
    'T' => {'Rule'  =>[365]},
    365 => {'Length'=>[30]*12+[5]}
  },
 'note' => 'Zoroastrian'
}]
Qadimi =

Qadimi Calendar

[CyclicTableBased, {
  'label'   => 'Zoroastrian::Qadimi',
  'indices' => [
     When.Index('ZoroastrianNotes::month::Month', {:unit =>13}),
     When::Coordinates::DefaultDayIndex
   ],
  'origin_of_MSC' => 1,
  'origin_of_LSC' => 1952063,
  'epoch_in_CE'   => 31,
  'rule_table'    => {
    'T' => {'Rule'  =>[365]},
    365 => {'Length'=>[30]*12+[5]}
  },
 'note' => 'Zoroastrian'
}]
Shahanshahi =

Shahanshahi Calendar

[CyclicTableBased, {
  'label'   => 'Zoroastrian::Shahanshahi',
  'indices' => [
     When.Index('ZoroastrianNotes::month::Month', {:unit =>13}),
     When::Coordinates::DefaultDayIndex
   ],
  'origin_of_MSC' => 1,
  'origin_of_LSC' => 1952063 + 30,
  'epoch_in_CE'   => 31,
  'rule_table'    => {
    'T' => {'Rule'  =>[365]},
    365 => {'Length'=>[30]*12+[5]}
  },
 'note' => 'Zoroastrian'
}]
Fasli =

Fasli Calendar

[{'Epoch'=>{
             'ZRE'=>{'origin_of_MSC'=>1737},
             'YZ' =>{'origin_of_MSC'=>-630}
          }}, SolarYearTableBasedWithSunset, {
  'label'   => 'Zoroastrian::Fasli',
  'indices' => [
     When.Index('ZoroastrianNotes::month::Month', {:unit =>13}),
     When::Coordinates::DefaultDayIndex
  ],
  'origin_of_MSC' => -630,
  'diff_to_CE'    =>    0,
  'engine_month'  =>    3,
  'engine_day'    =>   21,
  'rule_table'    => {
    365 => {'Length'=>[30] * 12 + [5]},
    366 => {'Length'=>[30] * 12 + [6]}
  },
  'note' => 'Zoroastrian'
}]
WorldSeason =

WorldSeason calendar based on Gregorian calendar

[SolarYearTableBased, {
  'label'   => 'WorldSeason::WorldSeason',
  'indices' => [
      When.Index('WorldSeasonWeekNotes::month::Month', {:unit =>4}),
     When::Coordinates::DefaultDayIndex
    ],
  'engine_day'       => -10, # 11th day before new year
  'rule_table'       => {
    365  => {'Length'=>[91] * 3 + [92]},
    366  => {'Length'=>[91, 92] * 2}
  },
  'note'   => 'WorldSeasonWeek'
}]
ChineseTwin =
[{}, When::BasicTypes::M17n, ChineseSolar.twin('ChineseTwin', [
  "locale:[=ja:, en=en:, alias]",
  "area:[中国,China]",

  [ChineseLuniSolar,
    'name:[黄帝暦=]',
    'formula:MeanLunation?year_length=1461/4&lunation_length=27759/940&day_epoch=1228331',
    'intercalary_month:12'
  ],

  [ChineseLuniSolar,
    'name:[顓頊暦]',
    'formula:MeanLunation?year_length=1461/4&lunation_length=27759/940&day_epoch=1171396&longitude_shift=-1/8',
    'time_basis:+00,+#{P:12}',
    'intercalary_month:9'
  ],

  [ChineseLuniSolar,
    'name:[顓頊暦後期=]',
    'formula:MeanLunation?year_length=1461/4&lunation_length=27759/940&day_epoch=1171396&longitude_shift=-1/8',
    'time_basis:+00,+#{P:12}',
    'base_month:1',
    'intercalary_month:9'
  ],

  [ChineseLuniSolar,
    'name:[夏暦]',
    'formula:MeanLunation?year_length=1461/4&lunation_length=27759/940&day_epoch=1328411',
    'intercalary_month:12'
  ],

  [ChineseLuniSolar,
    'name:[殷暦]',
    'formula:MeanLunation?year_length=1461/4&lunation_length=27759/940&day_epoch=1149071',
    'intercalary_month:12'
  ],

  [ChineseLuniSolar,
    'name:[周暦]',
    'formula:MeanLunation?year_length=1461/4&lunation_length=27759/940&day_epoch=1128251',
    'intercalary_month:12'
  ],

  [ChineseLuniSolar,
    'name:[魯暦=]',
    'formula:MeanLunation?year_length=1461/4&lunation_length=27759/940&day_epoch=1048991',
    'intercalary_month:12'
  ],

  [ChineseLuniSolar,
    'name:[太初暦]',
    'formula:MeanLunation?year_length=562120/1539&lunation_length=2392/81&day_epoch=1683431'
  ],

  [ChineseLuniSolar,
    'name:[四分暦]',
    'formula:MeanLunation?year_length=1461/4&lunation_length=27759/940&day_epoch=1662611'
  ],

  [ChineseLuniSolar,
    'name:[乾象暦]',
    'formula:MeanLunation?year_length=215130/589&lunation_length=43026/1457&day_epoch=-898129'
  ],

  [ChineseLuniSolar,
    'name:[景初暦]',
    'formula:MeanLunation?year_length=673150/1843&lunation_length=134630/4559&day_epoch=+330191'
  ],

  [ChineseLuniSolar,
    'name:[三紀暦=]',
    'formula:MeanLunation?year_length=895220/2451&lunation_length=179044/6063&day_epoch=-28760989'
  ],

  [ChineseLuniSolar,
    'name:[玄始暦]',
    'formula:MeanLunation?year_length=2629759/7200&lunation_length=2629759/89052&day_epoch=-20568349'
  ],

  [ChineseLuniSolar,
    'name:[元嘉暦=]',
    'formula:MeanLunation?year_length=111035/304&lunation_length=22207/752&day_epoch=-200089&longitude_shift=-1/12' # 春分の1ヶ月前
  ],

  [ChineseLuniSolar,
    'name:[大明暦]',
    'formula:MeanLunation?year_length=14423804/39491&lunation_length=116321/3939&day_epoch=-17080189'
  ],

  [ChineseLuniSolar,
    'name:[正光暦=]',
    'formula:MeanLunation?year_length=2213377/6060&lunation_length=2213377/74952&day_epoch=-59357929'
  ],

  [ChineseLuniSolar,
    'name:[興和暦=]',
    'formula:MeanLunation?year_length=6158017/16860&lunation_length=6158017/208530&day_epoch=-105462049'
  ],

  [ChineseLuniSolar,
    'name:[天保暦=]',
    'formula:MeanLunation?year_length=8641687/23660&lunation_length=8641687/292635&day_epoch=-38447089'
  ],

  [ChineseLuniSolar,
    'name:[天和暦=]',
    'formula:MeanLunation?year_length=8568631/23460&lunation_length=8568631/290160&day_epoch=-317950249'
  ],

  [ChineseLuniSolar,
    'name:[大象暦=]',
    'formula:MeanLunation?year_length=4745247/12992&lunation_length=1581749/53563&day_epoch=-13244449'
  ],

  [ChineseLuniSolar,
    'name:[開皇暦=]',
    'formula:MeanLunation?year_length=37605463/102960&lunation_length=5372209/181920&day_epoch=-1506155749'
  ],

  [ChineseLuniSolar,
    'name:[大業暦=]',
    'formula:MeanLunation?year_length=15573963/42640&lunation_length=33783/1144&day_epoch=-519493909'
  ],

  [ChineseLuniSolar,
    'name:[戊寅元暦]',
    'time_basis:+00,+#{P:00}',
    {'formula'=>['12S', '1L'].map {|f| [
      Ephemeris::ChineseTrueLunation, {
        'formula'                  => f,
        'day_epoch'                => -58077529,
        'year_length'              =>  '3456675/9464', # 365.0 + 2315/9464(度法)
        'lunation_length'          =>  '384075/13006', #  29.0 + 6901/13006(日法)
        'anomalistic_month_length' =>  '99775/3621',   #  27.0 + 16064/28968 (798200(暦周)/28968(暦法))
        'rissei'                   =>  'a',
        'method'                   =>  'W',
        's'                        => [
          #(先後數) 盈縮數
          [    0.0,     0], # 冬至
          [    0.0,  +896], # 小寒
          [    0.0, +1294], # 大寒
          [    0.0, +1694], # 立春
          [    0.0, +1922], # 啓蟄
          [    0.0, +2263], # 雨水
          [    0.0, +2713], # 春分
          [    0.0, +2213], # 清明
          [    0.0, +1758], # 穀雨
          [    0.0, +1403], # 立夏
          [    0.0,  +848], # 小満
          [    0.0,     0], # 芒種
          [    0.0,  -739], # 夏至
          [    0.0, -1365], # 小暑
          [    0.0, -1821], # 大暑
          [    0.0, -2109], # 立秋
          [    0.0, -2149], # 処暑
          [    0.0, -2491], # 白露
          [    0.0, -2946], # 秋分
          [    0.0, -2264], # 寒露
          [    0.0, -1639], # 霜降
          [    0.0, -1069], # 立冬
          [    0.0,  -556], # 小雪
          [    0.0,  -100]  # 大雪
        ],          
        'm'                       => [
          #(変日差)   盈縮積分の差分(9037=章歳(676)+章月(8361))
          [13006.0, -11341226.0/9037], #   1日
          [13006.0, -10053632.0/9037], #   2日
          [13006.0,  -8557946.0/9037], #   3日
          [13006.0,  -6841146.0/9037], #   4日
          [13006.0,  -4903257.0/9037], #   5日
          [13006.0,  -2978403.0/9037], #   6日
          [13006.0,  -1053445.0/9037], #   7日
          [13006.0,  +1092498.0/9037], #   8日
          [13006.0,  +3238489.0/9037], #   9日
          [13006.0,  +5163376.0/9037], #   10日
          [13006.0,  +6880164.0/9037], #   11日
          [13006.0,  +8388868.0/9037], #   12日
          [13006.0,  +9884554.0/9037], #   13日
          [13006.0, +11172149.0/9037], #   14日
          [13006.0, +10742961.0/9037], #   15日
          [13006.0,  +9455368.0/9037], #   16日
          [13006.0,  +7959678.0/9037], #   17日
          [13006.0,  +6242886.0/9037], #   18日
          [13006.0,  +4526094.0/9037], #   19日
          [13006.0,  +2601205.0/9037], #   20日
          [13006.0,   +663312.0/9037], #   21日
          [13006.0,  -1482690.0/9037], #   22日
          [13006.0,  -3407578.0/9037], #   23日
          [13006.0,  -5332465.0/9037], #   24日
          [13006.0,  -7036252.0/9037], #   25日
          [13006.0,  -8753044.0/9037], #   26日
          [13006.0, -10040638.0/9037], #   27日
          [ 7295.0,  -6229880.0/9037]  #   28日
        ]
     }]
    }
   }
  ],

  [ChineseLuniSolar,
    'name:[平朔戊寅暦=]',
    'formula:MeanLunation?year_length=3456675/9464&lunation_length=384075/13006&day_epoch=-58077529'
  ],

  [ChineseLuniSolar,
    'name:[麟徳暦]',
    'time_basis:+00,+#{P:00}',
    {'formula'=>['12S', '1L'].map {|f| [
      Ephemeris::ChineseTrueLunation, {
        'formula'                  => f,
        'day_epoch'                => -96608689,
        'year_length'              => '122357/335',
        'lunation_length'          =>  '39571/1340',
        'anomalistic_month_length' =>  '443077/16080', # 27.0 + (743.0+1.0/12)/1340,
      # 'rissei'                   =>  'B',
        'method'                   =>  '#{Method:A}',
        's'                        => [
          # 消息總  盈朒積    初率b    別差c
          [    0.0,     0,  +3.9546, -0.0372], # 冬至
          [ -722.0,   +54,  +3.4091, -0.0372], # 小寒
          [-1340.0,  +100,  +2.8636, -0.0372], # 大寒
          [-1854.0,  +138,  +2.3181, +0.0372], # 立春
          [-2368.0,  +176,  +2.8636, +0.0372], # 啓蟄
          [-2986.0,  +222,  +3.4091, +0.0372], # 雨水
          [-3708.0,  +276,  -3.7220, +0.0329], # 春分
          [-2986.0,  +222,  -3.2086, +0.0329], # 清明
          [-2368.0,  +176,  -2.6952, +0.0329], # 穀雨
          [-1854.0,  +138,  -2.1818, -0.0329], # 立夏
          [-1340.0,  +100,  -2.6952, -0.0329], # 小満
          [ -722.0,   +54,  -3.2086, -0.0329], # 芒種
          [    0.0,     0,  -3.7220, +0.0329], # 夏至
          [ +722.0,   -54,  -3.2086, +0.0329], # 小暑
          [+1340.0,  -100,  -2.6952, +0.0329], # 大暑
          [+1854.0,  -138,  -2.1818, -0.0329], # 立秋
          [+2368.0,  -176,  -2.6952, -0.0329], # 処暑
          [+2986.0,  -222,  -3.2086, -0.0329], # 白露
          [+3708.0,  -276,  +3.9546, -0.0372], # 秋分
          [+2986.0,  -222,  +3.4091, -0.0372], # 寒露
          [+2368.0,  -176,  +2.8636, -0.0372], # 霜降
          [+1854.0,  -138,  +2.3181, +0.0372], # 立冬
          [+1340.0,  -100,  +2.8636, +0.0372], # 小雪
          [ +722.0,   -54,  +3.4091, +0.0372], # 大雪
        ],
        'm'                       => [
          #(変日差) 増減率
          [1340.0,   -134],                    #   1日
          [1340.0,   -117],                    #   2日
          [1340.0,    -99],                    #   3日
          [1340.0,    -78],                    #   4日
          [1340.0,    -56],                    #   5日
          [1340.0,    -33],                    #   6日
          [1191.0,     -9],                    #   7日
          [ 149.0,      0],                    #   7日
          [1340.0,    +14],                    #   8日
          [1340.0,    +38],                    #   9日
          [1340.0,    +62],                    #   10日
          [1340.0,    +85],                    #   11日
          [1340.0,   +104],                    #   12日
          [1340.0,   +121],                    #   13日
          [1042.0,   +102],                    #   14日
          [ 298.0,    +29],                    #   14日
          [1340.0,   +128],                    #   15日
          [1340.0,   +115],                    #   16日
          [1340.0,    +95],                    #   17日
          [1340.0,    +74],                    #   18日
          [1340.0,    +52],                    #   19日
          [1340.0,    +28],                    #   20日
          [ 892.0,     +4],                    #   21日
          [ 448.0,      0],                    #   21日
          [1340.0,    -20],                    #   22日
          [1340.0,    -44],                    #   23日
          [1340.0,    -68],                    #   24日
          [1340.0,    -89],                    #   25日
          [1340.0,   -108],                    #   26日
          [1340.0,   -125],                    #   27日
          [ 743.0+1.0/12, -71]                 #   28日
        ]
     }]
    },
    'doyo'   => (Rational( 4,15) +  244) / 1340
   }
  ],

  [ChineseLuniSolar,
    'name:[大衍暦]',
    'time_basis:+00,+#{P:03}',
    {'formula'=>['12S', '1L'].map {|f| [
      Ephemeris::ChineseTrueLunation, {
        'formula'                  => f,
        'day_epoch'                => -35412747829,
        'year_length'              => '1110343/3040',
        'lunation_length'          =>   '89773/3040',
        'anomalistic_month_length' =>  '6701279/243200', # 27.0 +(1685.0+79.0/80)/3040,
      # 'rissei'                   =>  'C',
        's'                        => [
          # 先後數  朓朒積    初率b    別差c
          [    0.0,     0, +13.4524, -0.1886], # 冬至
          [-2353.0,  +176, +10.5564, -0.1634], # 小寒
          [-4198.0,  +314,  +8.0408, -0.1446], # 大寒
          [-5588.0,  +418,  +5.8160, -0.1318], # 立春
          [-6564.0,  +491,  +3.7987, -0.1240], # 雨水
          [-7152.0,  +535,  +1.9265, -0.1240], # 啓蟄
          [-7366.0,  +551,  -0.2048, -0.1178], # 春分
          [-7152.0,  +535,  -1.9968, -0.1190], # 清明
          [-6564.0,  +491,  -3.7956, -0.1240], # 穀雨
          [-5588.0,  +418,  -5.6626, -0.1324], # 立夏
          [-4198.0,  +314,  -7.6555, -0.1436], # 小満
          [-2353.0,  +176,  -9.9405, -0.1436], # 芒種
          [    0.0,     0, -12.0819, +0.1436], # 夏至
          [+2353.0,  -176,  -9.7018, +0.1324], # 小暑
          [+4198.0,  -314,  -7.5450, +0.1240], # 大暑
          [+5588.0,  -418,  -5.5634, +0.1190], # 立秋
          [+6564.0,  -491,  -3.7038, +0.1178], # 処暑
          [+7152.0,  -535,  -1.8954, +0.1178], # 白露
          [+7366.0,  -551,  +0.1783, +0.1240], # 秋分
          [+7152.0,  -535,  +2.0042, +0.1318], # 寒露
          [+6564.0,  -491,  +3.8950, +0.1446], # 霜降
          [+5588.0,  -418,  +5.9214, +0.1634], # 立冬
          [+4198.0,  -314,  +8.1610, +0.1886], # 小雪
          [+2353.0,  -176, +10.9010, +0.1886], # 大雪
        ],
        'm'                       => [
          #(変日差) 損益率
          [3040.0,   +297],                    #   1日
          [3040.0,   +259],                    #   2日
          [3040.0,   +220],                    #   3日
          [3040.0,   +180],                    #   4日
          [3040.0,   +139],                    #   5日
          [3040.0,    +97],                    #   6日
          [2701.0,    +48],                    #   7日
          [ 339.0,     -6],                    #   7日
          [3040.0,    -64],                    #   8日
          [3040.0,   -106],                    #   9日
          [3040.0,   -148],                    #   10日
          [3040.0,   -189],                    #   11日
          [3040.0,   -229],                    #   12日
          [3040.0,   -267],                    #   13日
          [2363.0,   -231],                    #   14日
          [ 677.0,    -66],                    #   14日
          [3040.0,   -289],                    #   15日
          [3040.0,   -250],                    #   16日
          [3040.0,   -211],                    #   17日
          [3040.0,   -171],                    #   18日
          [3040.0,   -130],                    #   19日
          [3040.0,    -87],                    #   20日
          [2024.0,    -36],                    #   21日
          [1016.0,    +18],                    #   21日
          [3040.0,    +73],                    #   22日
          [3040.0,   +116],                    #   23日
          [3040.0,   +157],                    #   24日
          [3040.0,   +198],                    #   25日
          [3040.0,   +237],                    #   26日
          [3040.0,   +276],                    #   27日
          [1686.0,   +165]                     #   28日
        ]
     }]
    },
    'doyo'   => (Rational(13,30) +  531) / 3040
   }
  ],

  [ChineseLuniSolar,
    'name:[五紀暦]',
    'time_basis:+00,+#{P:06}',
    {'formula'=>['12S', '1L'].map {|f| [
      Ephemeris::ChineseTrueLunation, {
        'formula'                  => f,
        'day_epoch'                => -96608689,
        'year_length'              => '122357/335',
        'lunation_length'          =>  '39571/1340',
        'anomalistic_month_length' =>  '1366156/49580', # 27.0 + (743.0+5.0/37)/1340,
      # 'rissei'                   =>  'C',
        's'                        => [
          # 先後數  朓朒積    初率b    別差c
          [    0.0,     0,  +5.9668, -0.0843], # 冬至
          [-1037.0,   +78,  +4.6652, -0.0721], # 小寒
          [-1850.0,  +139,  +3.5656, -0.0653], # 大寒
          [-2463.0,  +185,  +2.5583, -0.0590], # 立春
          [-2893.0,  +217,  +1.6375, -0.0532], # 雨水
          [-3152.0,  +236,  +0.8384, -0.0532], # 啓蟄
          [-3246.0,  +243,  -0.0972, -0.0505], # 春分
          [-3152.0,  +236,  -0.8480, -0.0534], # 清明
          [-2893.0,  +217,  -1.6517, -0.0561], # 穀雨
          [-2463.0,  +185,  -2.5057, -0.0584], # 立夏
          [-1850.0,  +139,  -3.3781, -0.0643], # 小満
          [-1037.0,   +78,  -4.3954, -0.0643], # 芒種
          [    0.0,     0,  -5.3592, +0.0643], # 夏至
          [+1037.0,   -78,  -4.2877, +0.0584], # 小暑
          [+1850.0,  -139,  -3.3459, +0.0561], # 大暑
          [+2463.0,  -185,  -2.4475, +0.0534], # 立秋
          [+2893.0,  -217,  -1.5966, +0.0505], # 処暑
          [+3152.0,  -236,  -0.8185, +0.0505], # 白露
          [+3246.0,  -243,  +0.0858, +0.0532], # 秋分
          [+3152.0,  -236,  +0.8505, +0.0590], # 寒露
          [+2893.0,  -217,  +1.6943, +0.0653], # 霜降
          [+2463.0,  -185,  +2.6205, +0.0721], # 立冬
          [+1850.0,  -139,  +3.6007, +0.0843], # 小雪
          [+1037.0,   -78,  +4.8330, +0.0843], # 大雪
        ],
        'm'                       => [
          #(変日差) 損益率
          [1340.0,   -135],                    #   1日
          [1340.0,   -117],                    #   2日
          [1340.0,    -99],                    #   3日
          [1340.0,    -78],                    #   4日
          [1340.0,    -56],                    #   5日
          [1340.0,    -33],                    #   6日
          [1191.0,     -8],                    #   7日
          [ 149.0,     +1],                    #   7日
          [1340.0,    +14],                    #   8日
          [1340.0,    +38],                    #   9日
          [1340.0,    +62],                    #   10日
          [1340.0,    +85],                    #   11日
          [1340.0,   +103],                    #   12日
          [1340.0,   +118],                    #   13日
          [1042.0,   +105],                    #   14日
          [ 298.0,    +30],                    #   14日
          [1340.0,   +128],                    #   15日
          [1340.0,   +115],                    #   16日
          [1340.0,    +95],                    #   17日
          [1340.0,    +74],                    #   18日
          [1340.0,    +52],                    #   19日
          [1340.0,    +28],                    #   20日
          [ 892.0,     +6],                    #   21日
          [ 448.0,     -3],                    #   21日
          [1340.0,    -20],                    #   22日
          [1340.0,    -42],                    #   23日
          [1340.0,    -65],                    #   24日
          [1340.0,    -89],                    #   25日
          [1340.0,   -109],                    #   26日
          [1340.0,   -125],                    #   27日
          [ 743.0+5.0/37, -75]                 #   28日
        ]
     }]
    },
    'doyo'   => (Rational( 4,15) +  244) / 1340
   }
  ],

  [ChineseLuniSolar,
    'name:[正元暦=]',
    'time_basis:+00,+#{P:06}',
    {'formula'=>['12S', '1L'].map {|f| [
      Ephemeris::ChineseTrueLunation, {
        'formula'                  => f,
        'day_epoch'                => -145149709,
        'year_length'              => '399943/1095',       # 365.0 + 268/1095(通法)
        'lunation_length'          =>  '32336/1095',       #  29.0 + 581/1095
        'anomalistic_month_length' =>  '301720132/10950000', #  27.0 + 607.0132(轉終日)/1095 (301720132(轉終分)/10950000)
        'rissei'                   =>  'c',
        'method'                   =>  'C',
        's'                        => [
          # 先後數  朓朒積
          [    0.0,     0], # 冬至
          [ -848.0,   +63], # 小寒
          [-1512.0,  +113], # 大寒
          [-2013.0,  +150], # 立春
          [-2364.0,  +176], # 雨水
          [-2576.0,  +192], # 啓蟄
          [-2653.0,  +198], # 春分
          [-2576.0,  +192], # 清明
          [-2364.0,  +176], # 穀雨
          [-2013.0,  +150], # 立夏
          [-1512.0,  +113], # 小満
          [ -848.0,   +63], # 芒種
          [    0.0,     0], # 夏至
          [ +848.0,   -63], # 小暑
          [+1512.0,  -113], # 大暑
          [+2013.0,  -150], # 立秋
          [+2364.0,  -176], # 処暑
          [+2576.0,  -192], # 白露
          [+2653.0,  -198], # 秋分
          [+2576.0,  -192], # 寒露
          [+2364.0,  -176], # 霜降
          [+2013.0,  -150], # 立冬
          [+1512.0,  -113], # 小雪
          [ +848.0,   -63], # 大雪
        ],
        'm'                       => [
          #(変日差) 損益率
          [1095.0,  -110], #   1日
          [1095.0,   -96], #   2日
          [1095.0,   -81], #   3日
          [1095.0,   -64], #   4日
          [1095.0,   -46], #   5日
          [1095.0,   -27], #   6日
          [ 973.0,    -7], #   7日
          [ 122.0,    +1], #   7日
          [1095.0,   +12], #   8日
          [1095.0,   +31], #   9日
          [1095.0,   +51], #   10日
          [1095.0,   +68], #   11日
          [1095.0,   +85], #   12日
          [1095.0,   +96], #   13日
          [ 851.0,   +87], #   14日
          [ 244.0,   +25], #   14日
          [1095.0,  +107], #   15日
          [1095.0,   +94], #   16日
          [1095.0,   +78], #   17日
          [1095.0,   +61], #   18日
          [1095.0,   +42], #   19日
          [1095.0,   +23], #   20日
          [ 729.0,    +5], #   21日
          [ 366.0,    -2], #   21日
          [1095.0,   -16], #   22日
          [1095.0,   -35], #   23日
          [1095.0,   -53], #   24日
          [1095.0,   -71], #   25日
          [1095.0,   -88], #   26日
          [1095.0,  -102], #   27日
          [ 607.0,   -68], #   28日
          [ 366.0,   -42]  #   28日
        ]
     }]
    }
   }
  ],

  [ChineseLuniSolar,
    'name:[宣明暦]',
    'time_basis:+00,+#{P:06}',
    {'formula'=>['12S', '1L'].map {|f| [
      Ephemeris::ChineseTrueLunation, {
        'formula'                  => f,
        'day_epoch'                => -2580308749,
        'year_length'              => '3068055/8400',
        'lunation_length'          =>  '248057/8400',
        'anomalistic_month_length' =>  '23145819/840000', # 27.0 + 4658.19 / 8400,
      # 'rissei'                   =>  'C',
        's'                        => [
          # 先後數  朓朒数    初率b    別差c
          [     0.0,     0, +33.4511, -0.3695], # 冬至
          [ -6000.0,  +449, +28.0389, -0.3606], # 小寒
          [-11000.0,  +823, +22.6998, -0.3519], # 大寒
          [-15000.0, +1122, +17.8923, -0.4068], # 立春
          [-18000.0, +1346, +11.7966, -0.3998], # 雨水
          [-19800.0, +1481,  +5.7986, -0.3998], # 啓蟄
          [-20400.0, +1526,  -0.2433, -0.3779], # 春分
          [-19800.0, +1481,  -6.1254, -0.3634], # 清明
          [-18000.0, +1346, -12.2048, -0.2987], # 穀雨
          [-15000.0, +1122, -16.9060, -0.2919], # 立夏
          [-11000.0,  +823, -21.5362, -0.2854], # 小満
          [ -6000.0,  +449, -26.0498, -0.2854], # 芒種
          [     0.0,     0, -30.3119, +0.2854], # 夏至
          [ +6000.0,  -449, -25.8126, +0.2919], # 小暑
          [+11000.0,  -823, -21.2454, +0.2987], # 大暑
          [+15000.0, -1122, -17.0296, +0.3634], # 立秋
          [+18000.0, -1346, -11.4744, +0.3779], # 処暑
          [+19800.0, -1481,  -5.6429, +0.3779], # 白露
          [+20400.0, -1526,  +0.1432, +0.3998], # 秋分
          [+19800.0, -1481,  +6.1488, +0.4068], # 寒露
          [+18000.0, -1346, +12.6336, +0.3519], # 霜降
          [+15000.0, -1122, +17.8043, +0.3606], # 立冬
          [+11000.0,  -823, +23.0590, +0.3695], # 小雪
          [ +6000.0,  -449, +28.4618, +0.3695], # 大雪
        ],
        'm'                       => [
          #(変日差) 損益率
          [ 8400.0,   +830],                    # 進1日
          [ 8400.0,   +726],                    #   2日
          [ 8400.0,   +606],                    #   3日
          [ 8400.0,   +471],                    #   4日
          [ 8400.0,   +337],                    #   5日
          [ 8400.0,   +202],                    #   6日
          [ 7465.0,    +53],                    #   7日
          [  935.0,     -7],                    #   7日
          [ 8400.0,    -82],                    #   8日
          [ 8400.0,   -224],                    #   9日
          [ 8400.0,   -366],                    #   10日
          [ 8400.0,   -509],                    #   11日
          [ 8400.0,   -643],                    #   12日
          [ 8400.0,   -748],                    #   13日
          [ 6529.095, -646],                    #   14日
          [ 8400.0,   -830],                    # 退1日
          [ 8400.0,   -726],                    #   2日
          [ 8400.0,   -598],                    #   3日
          [ 8400.0,   -464],                    #   4日
          [ 8400.0,   -329],                    #   5日
          [ 8400.0,   -195],                    #   6日
          [ 7465.0,    -53],                    #   7日
          [  935.0,     +7],                    #   7日
          [ 8400.0,    +82],                    #   8日
          [ 8400.0,   +225],                    #   9日
          [ 8400.0,   +366],                    #   10日
          [ 8400.0,   +501],                    #   11日
          [ 8400.0,   +628],                    #   12日
          [ 8400.0,   +740],                    #   13日
          [ 6529.095, +646]                     #   14日
        ]
     }]
    },
    'doyo'   => (Rational( 1, 2) + 1468) / 8400
   }
  ],

  [ChineseLuniSolar,
    'name:[崇玄暦=]',
    'time_basis:+00,+#{P:06}',
    {'formula'=>['12S', '1L'].map {|f| [
      Ephemeris::ChineseTrueLunation, {
        'formula'                  => f,
        'day_epoch'                => -19701911689,
        'year_length'              => '4930801/13500',     # 365.0+3301/13500(通法)
        'lunation_length'          =>  '398663/13500',     #  29.0+7163/13500
        'anomalistic_month_length' =>  '37198697/1350000', #  27.0+7486.97(轉終日)/13500
        'rissei'                   =>  'c',
        's'                        => [
          # 盈縮分     朓朒積
          [     0*1.35,     0], # 冬至
          [ -7740*1.35,  +782], # 小寒
          [-13809*1.35, +1395], # 大寒
          [-18381*1.35, +1857], # 立春
          [-21631*1.35, +2185], # 雨水
          [-23608*1.35, +2385], # 啓蟄
          [-24268*1.35, +2452], # 春分
          [-23608*1.35, +2385], # 清明
          [-21631*1.35, +2185], # 穀雨
          [-18381*1.35, +1857], # 立夏
          [-13809*1.35, +1395], # 小満
          [ -7740*1.35,  +782], # 芒種
          [     0*1.35,     0], # 夏至
          [ +7740*1.35,  -782], # 小暑
          [+13809*1.35, -1395], # 大暑
          [+18381*1.35, -1857], # 立秋
          [+21631*1.35, -2185], # 処暑
          [+23608*1.35, -2385], # 白露
          [+24268*1.35, -2452], # 秋分
          [+23608*1.35, -2385], # 寒露
          [+21631*1.35, -2185], # 霜降
          [+18381*1.35, -1857], # 立冬
          [+13809*1.35, -1395], # 小雪
          [ +7740*1.35,  -782], # 大雪
        ],
        'm'                       => [
          #(変日差) 損益率
          [13500.0,  +1319], #   1日
          [13500.0,  +1150], #   2日
          [13500.0,   +978], #   3日
          [13500.0,   +799], #   4日
          [13500.0,   +617], #   5日
          [13500.0,   +431], #   6日
          [11996.75,  +213], #   7日
          [ 1503.25,   -27], #   7日
          [13500.0,   -285], #   8日
          [13500.0,   -471], #   9日
          [13500.0,   -650], #   10日
          [13500.0,   -840], #   11日
          [13500.0,  -1017], #   12日
          [13500.0,  -1185], #   13日
          [10493.5,  -1032], #   14日
          [ 3006.5,   -293], #   14日
          [13500.0,  -1284], #   15日
          [13500.0,  -1110], #   16日
          [13500.0,   -941], #   17日
          [13500.0,   -757], #   18日
          [13500.0,   -578], #   19日
          [13500.0,   -386], #   20日
          [ 8990.25,  -160], #   21日
          [ 4509.75,   +80], #   21日
          [13500.0,   +324], #   22日
          [13500.0,   +516], #   23日
          [13500.0,   +697], #   24日
          [13500.0,   +879], #   25日
          [13500.0,  +1053], #   26日
          [13500.0,  +1223], #   27日
          [ 7487.0,   +737]  #   28日
        ]
     }]
    }
   }
  ],

  [ChineseLuniSolar,
    'name:[重修大明暦=]',
    'time_basis:+00,+#{P:06:30}',
    {'formula'=>['12S', '1L'].map {|f| [
      Ephemeris::ChineseTrueLunation, {
        'formula'                  => f,
        'day_epoch'                => -32372914549,
        'year_length'              => '1910224/5230',     # 365.0+1274/5230(日法)
        'lunation_length'          =>  '154445/5230',     #  29.0+2775/5230
        'anomalistic_month_length' =>  '1441106066/52300000', #  27.0+2900.6066(轉終日)/5230
        'denominator'              =>  5230,
        'rissei'                   =>  'c',
        's'                        => [
          # 盈縮分     朓朒積
          [     0*0.523,    0], # 冬至
          [ -7059*0.523, +276], # 小寒
          [-12979*0.523, +508], # 大寒
          [-17697*0.523, +693], # 立春
          [-21150*0.523, +828], # 雨水
          [-23276*0.523, +911], # 啓蟄
          [-24015*0.523, +940], # 春分
          [-23276*0.523, +911], # 清明
          [-21150*0.523, +828], # 穀雨
          [-17697*0.523, +693], # 立夏
          [-12979*0.523, +508], # 小満
          [ -7059*0.523, +276], # 芒種
          [     0*0.523,    0], # 夏至
          [ +7059*0.523, -276], # 小暑
          [+12979*0.523, -508], # 大暑
          [+17697*0.523, -693], # 立秋
          [+21150*0.523, -828], # 処暑
          [+23276*0.523, -911], # 白露
          [+24015*0.523, -940], # 秋分
          [+23276*0.523, -911], # 寒露
          [+21150*0.523, -828], # 霜降
          [+17697*0.523, -693], # 立冬
          [+12979*0.523, -508], # 小雪
          [ +7059*0.523, -276], # 大雪
        ],
        'm'                       => [
          #(変日差) 損益率
          [ 5230.0,   -513], #   1日
          [ 5230.0,   -469], #   2日
          [ 5230.0,   -411], #   3日
          [ 5230.0,   -332], #   4日
          [ 5230.0,   -343], #   5日
          [ 5230.0,   -141], #   6日
          [ 4647.65,   -43], #   7日
          [  582.35,    +4], #   7日
          [ 5230.0,    +63], #   8日
          [ 5230.0,   +164], #   9日
          [ 5230.0,   +258], #   10日
          [ 5230.0,   +352], #   11日
          [ 5230.0,   +427], #   12日
          [ 5230.0,   +481], #   13日
          [ 4065.30,  +403], #   14日
          [ 1164.70,  +117], #   14日
          [ 5230.0,   +505], #   15日
          [ 5230.0,   +462], #   16日
          [ 5230.0,   +395], #   17日
          [ 5230.0,   +309], #   18日
          [ 5230.0,   +219], #   19日
          [ 5230.0,   +117], #   20日
          [ 3482.95,   +27], #   21日
          [ 1747.05,   -11], #   21日
          [ 5230.0,    -86], #   22日
          [ 5230.0,   -184], #   23日
          [ 5230.0,   -278], #   24日
          [ 5230.0,   -368], #   25日
          [ 5230.0,   -438], #   26日
          [ 5230.0,   -493], #   27日
          [ 2900.6066,-293]  #   28日
        ]
     }]
    }
   }
  ],

  [ChineseLuniSolar,
    'name:[キタイ暦=https://www2.nao.ac.jp/~mitsurusoma/gendai5/26_suga.pdf]',
    'time_basis:+00,+#{P:06}',
    {'formula'=>['12S', '1L'].map {|f| [
      Ephemeris::ChineseTrueLunation, _chinese_uighur.merge({
        'formula'                  => f,
        'year_delta'               => 0,   # 冬至年の変化率 / (10^(-6)日/年)
        'year_span'                => 1    # 冬至年の改訂周期 / 年
     })]
    }
   }
  ],

  [ChineseLuniSolar,
    'name:[古授時暦]',
    {'formula'=>['12S', '1L'].map {|f| [
      Ephemeris::ChineseTrueLunation, _chinese_common.merge({
        'formula'                  => f,
        'year_delta'               => 1,   # 冬至年の変化率 / (10^(-6)日/年)
        'year_span'                => 100  # 冬至年の改訂周期 / 年
     })]
    }
   }
  ],

  [ChineseLuniSolar,
    'name:[授時暦]',
    {'formula'=>['12S', '1L'].map {|f| [
      Ephemeris::ChineseTrueLunation, _chinese_common.merge(_chinese_revision).merge({
        'formula'                  => f,
        'year_delta'               => 1,   # 冬至年の変化率 / (10^(-6)日/年)
        'year_span'                => 100  # 冬至年の改訂周期 / 年
     })]
    }
   }
  ],

  [ChineseLuniSolar,
    'name:[大統暦]',
    {'formula'=>['12S', '1L'].map {|f| [
      Ephemeris::ChineseTrueLunation, _chinese_common.merge(_chinese_revision).merge({
        'formula'                  => f,
        'year_delta'               => 0,   # 冬至年の変化率 / (10^(-6)日/年)
        'year_span'                => 1    # 冬至年の改訂周期 / 年
     })]
    }
   }
  ]
])]
UmmalquraSolar =

Ummalqura Solar Calendar

[SolarYearTableBased, {
  'label'   =>  'SaudiArabia::UmmalquraSolar',
  'origin_of_MSC' => -621,
  'diff_to_CE'    =>    0,
  'engine_month'  =>    9,
  'engine_day'    =>   23,
  'indices' => [
    When.Index('SaudiArabia::SolarMonth', {:unit=>12}),
    When::Coordinates::DefaultDayIndex
  ],
  'rule_table'    => {
    365 => {'Length'=> [30]*5 + [29] + [31]*6},
    366 => {'Length'=> [30]*6        + [31]*6}
  }
}]
JapaneseTwin =
[{}, When::BasicTypes::M17n, ChineseSolar.twin('JapaneseTwin', [
  "locale:[=ja:, en=en:, alias]",
  "area:[日本,Japan]",

  [ChineseLuniSolar,
    'name:[平朔儀鳳暦=]',
    'formula:MeanLunation?year_length=122357/335&lunation_length=39571/1340&day_epoch=-96608689'
  ],

  [ChineseLuniSolar,
    'name:[貞享乙丑暦=]',
    {'formula'=>['12S', '1L'].map {|f| [
      Ephemeris::ChineseTrueLunation, _japanese_common.merge({
        'formula'                  => f,
        'day_epoch'                => 2336111 +  7.675, # 暦元天正冬至のユリウス日
        'year_epoch'               => 1684,             # 暦元の西暦年
        'year_length'              => 365.241696,       # 暦元の冬至年 / 日
        'anomalistic_year_shift'   => 6.445,            # 暦應(暦元での冬至から近日点通過までの日数)
        'lunation_shift'           =>  2.779 - 0.015,   # 閏應(暦元前経朔から暦元天正冬至までの日数)
        'anomalistic_month_shift'  => 22.72  - 0.015,   # 転應(暦元前近/遠地点通過から暦元天正冬至までの日数)
        'anomaly_method'           => '#{Method:a}',    # (経朔-定朔)の計算方法(a:差分, b:微分, c:幾何学的補正)
        'solar_weight'             => '#{Weight:1}',    # (経朔-定朔)の計算で用いる実行差での太陽盈縮の重み(0:非考慮,1:考慮)
     })]
    }
   }
  ],

  [ChineseLuniSolar,
    'name:[貞享暦]',
    {'formula'=>['12S', '1L'].map {|f| [
      Ephemeris::ChineseTrueLunation, _japanese_common.merge({
        'formula'                  => f,
        'day_epoch'                => 2336111 +  7.69 , # 暦元天正冬至のユリウス日
        'year_epoch'               => 1684,             # 暦元の西暦年
        'year_length'              => 365.241696,       # 暦元の冬至年 / 日
        'anomalistic_year_shift'   => 6.445,            # 暦應(暦元での冬至から近日点通過までの日数)
        'lunation_shift'           =>  2.779,           # 閏應(暦元前経朔から暦元天正冬至までの日数)
        'anomalistic_month_shift'  => 22.72,            # 転應(暦元前近/遠地点通過から暦元天正冬至までの日数)
        'anomaly_method'           => '#{Method:a}',    # (経朔-定朔)の計算方法(a:差分, b:微分, c:幾何学的補正)
        'solar_weight'             => '#{Weight:1}',    # (経朔-定朔)の計算で用いる実行差での太陽盈縮の重み(0:非考慮,1:考慮)
     })]
    }
   }
  ],

  [ChineseLuniSolar,
    'name:[宝暦癸酉暦=]',
    {'formula'=>['12S', '1L'].map {|f| [
      Ephemeris::ChineseTrueLunation, _japanese_common.merge({
        'formula'                  => f,
        'day_epoch'                => 2336111 +  7.9038,# 暦元天正冬至のユリウス日
        'year_epoch'               => 1684,             # 暦元の西暦年
        'year_length'              => 365.241696,       # 暦元の冬至年 / 日
        'anomalistic_year_shift'   => 6.445,            # 暦應(暦元での冬至から近日点通過までの日数)
        'lunation_shift'           =>  2.779 + 0.2138,  # 閏應(暦元前経朔から暦元天正冬至までの日数)
        'anomalistic_month_shift'  => 22.72  + 0.2138,  # 転應(暦元前近/遠地点通過から暦元天正冬至までの日数)
        'anomaly_method'           => '#{Method:a}',    # (経朔-定朔)の計算方法(a:差分, b:微分, c:幾何学的補正)
        'solar_weight'             => '#{Weight:1}',    # (経朔-定朔)の計算で用いる実行差での太陽盈縮の重み(0:非考慮,1:考慮)
     })]
    }
   }
  ],

  [ChineseLuniSolar,
    'name:[宝暦甲戌暦=]',
    {'formula'=>['12S', '1L'].map {|f| [
      Ephemeris::ChineseTrueLunation, _japanese_common.merge({
        'formula'                  => f,
        'day_epoch'                => 2336111 +  7.6223,# 暦元天正冬至のユリウス日
        'year_epoch'               => 1684,             # 暦元の西暦年
        'year_length'              => 365.241696,       # 暦元の冬至年 / 日
        'anomalistic_year_shift'   => 6.445,            # 暦應(暦元での冬至から近日点通過までの日数)
        'lunation_shift'           =>  2.779 - 0.0677,  # 閏應(暦元前経朔から暦元天正冬至までの日数)
        'anomalistic_month_shift'  => 22.72  - 0.0677,  # 転應(暦元前近/遠地点通過から暦元天正冬至までの日数)
        'anomaly_method'           => '#{Method:a}',    # (経朔-定朔)の計算方法(a:差分, b:微分, c:幾何学的補正)
        'solar_weight'             => '#{Weight:1}',    # (経朔-定朔)の計算で用いる実行差での太陽盈縮の重み(0:非考慮,1:考慮)
     })]
    }
   }
  ],

  [ChineseLuniSolar,
    'name:[宝暦暦]',
    {'formula'=>['12S', '1L'].map {|f| [
      Ephemeris::ChineseTrueLunation, _japanese_common.merge({
        'formula'                  => f,
        'day_epoch'                => 2361671 + 14.536, # 暦元天正冬至のユリウス日
        'year_epoch'               => 1754,             # 暦元の西暦年
        'year_length'              => 365.241556,       # 暦元の冬至年 / 日
        'anomalistic_year_shift'   => 6.455,            # 暦應(暦元での冬至から近日点通過までの日数)
        'lunation_shift'           => 25.654,           # 閏應(暦元前経朔から暦元天正冬至までの日数)
        'anomalistic_month_shift'  => 18.88,            # 転應(暦元前近/遠地点通過から暦元天正冬至までの日数)
        's'                        => ChineseSolar.change_unit(365.241556 / 365.241696, _japanese_common['s']),
        'anomaly_method'           => '#{Method:a}',    # (経朔-定朔)の計算方法(a:差分, b:微分, c:幾何学的補正)
        'solar_weight'             => '#{Weight:1}',    # (経朔-定朔)の計算で用いる実行差での太陽盈縮の重み(0:非考慮,1:考慮)
     })]
    }
   }
  ],

  [ChineseLuniSolar,
    'name:[修正宝暦暦=]',
    {'formula'=>['12S', '1L'].map {|f| [
      Ephemeris::ChineseTrueLunation, _japanese_common.merge({
        'formula'                  => f,
        'day_epoch'                => 2361671 + 14.681, # 暦元天正冬至のユリウス日
        'year_epoch'               => 1754,             # 暦元の西暦年
        'year_length'              => 365.241626,       # 暦元の冬至年 / 日
        'anomalistic_year_shift'   => 7.42,             # 暦應(暦元での冬至から近日点通過までの日数)
        'lunation_shift'           => 25.82,            # 閏應(暦元前経朔から暦元天正冬至までの日数)
        'anomalistic_month_shift'  => 19.307,           # 転應(暦元前近/遠地点通過から暦元天正冬至までの日数)
        's'                        => ChineseSolar.change_unit(365.241626 / 365.241696, _japanese_common['s']),
        'anomaly_method'           => '#{Method:a}',    # (経朔-定朔)の計算方法(a:差分, b:微分, c:幾何学的補正)
        'solar_weight'             => '#{Weight:1}',    # (経朔-定朔)の計算で用いる実行差での太陽盈縮の重み(0:非考慮,1:考慮)
     })]
    }
   }
  ],

  [ChineseLuniSolar,
    'name:[寛政暦]',
    'time_basis:+00,+09:03:01',          # 寛政9天正冬至.107112
     {'formula'=>['ChineseTrueLunation?day_epoch=2377391.107112&year_epoch=1797&year_length=365.242347071&year_delta=-0.217685&year_span=1000',
                  'Formula']}
  ],

  [ChineseLuniSolar,
    'name:[寛政丁亥暦=]',
    'time_basis:+00,+09:03:01',          # 寛政9天正冬至.107112
     {'formula'=>['ChineseTrueLunation?day_epoch=2377391.107112&year_epoch=1797&year_length=365.242347071&year_delta=-0.217685&year_span=10',
                  'Formula']}
  ],

  [ChineseLuniSolar,
    'name:[天保暦]',
    'time_basis:#{Clock:LAT}?long=135.4520E&lat=35.0117N',
    'intercalary_span:3'
  ],

  [ChineseLuniSolar,
    'name:[旧々暦=]',
    'time_basis:+09:18:59',
    'intercalary_span:3'
  ],

  [ChineseLuniSolar,
    'name:[旧暦]',
    'time_basis:+09:00',
    'intercalary_span:3'
  ]
])]
ChineseIndices =
[
  When.Index('Chinese::Month', {:branch=>{1=>'_m:Calendar::閏'}}),
  When::Coordinates::DefaultDayIndex
]
Chinese_221 =
秦・漢

顓頊暦 -221 - -162 (冬至を11月に固定) (歳首 建亥月)

顓頊暦 -161 - -103 (雨水を1月に固定) (歳首 建亥月)

PatternTableBasedLuniSolar, {
'origin_of_MSC'=>-222, 'origin_of_LSC'=>1640021, 'border'=>'0*10-01',
'before' => 'ChineseTwin::顓頊暦', 'after' => 'Chinese_103', 'note' => 'Chinese',
'indices'=> ChineseIndices,
'rule_table'=> %w(
          AbCdEfGhIjKl ABcDeFgHiJkL  aBcDeFGhIiJkL
  aBcDeFgHiJKl AbCdEfGhIjKl  ABcDeFgHiIjKl  AbCdEFgHiJkL aBcDeFgHIiJkL
  aBcDeFgHiJkL AbCdEfGhIjKl  AbCdEFgHiIjKl  AbCdEfGHiJkL aBcDeFgHiJkL
  AbCdEfGhIiJkL  aBCdEfGhIjKl AbCdEfGHiIjKl AbCdEfGhIjKL  aBcDeFgHiJkL
  aBCdEfGhIiJkL  aBcDeFGhIjKl AbCdEfGhIJkL  aBcDeFgHiIjKl  ABcDeFgHiJkL

  aBcDeFGhIjKl AbCdEfGhIIjKl AbCdEfGhIjKl  ABcDeFgHiIjKl  AbCDeFgHiJkL
  aBcDeFgHIjKl AbCdEfGhIiJkL AbCdEfGhIjKl  AbCDeFgHiJkL aBcDeFgHIiJkL
  aBcDeFgHiJKl AbCdEfGhIiJkL aBCdEfGhIjKl  AbCdEfGHiJkL aBcDeFgHiIJkL
  aBcDeFgHiJkL aBCdEfGhIjKl  AbCdEFgHiIjKl  AbCdEfGhIJkL aBcDeFgHiJkL
  aBCdEfGhIiJkL  aBcDEfGhIjKl AbCdEfGhIIjKl AbCdEfGhIjKL  aBcDeFgHiJkL
  aBcDEfGhIiJkL  aBcDeFgHIjKl AbCdEfGhIjKL  aBcDeFgHiIjKl  AbCDeFgHiJkL
  aBcDeFgHIiJkL  aBcDeFgHiJKl AbCdEfGhIjKl  AbCDeFgHiIjKl  AbCdEFgHiJkL
  aBcDeFgHiJKl AbCdEfGhIiJkL aBCdEfGhIjKl  AbCdEFgHiIjKl  AbCdEfGhIJkL
  aBcDeFgHiJkL AbCdEfGhIiJkL aBcDEfGhIjKl  AbCdEfGhIJkL aBcDeFgHiIjKL
  aBcDeFgHiJkL aBcDEfGhIjKl  AbCdEfGHiIjKl  AbCdEfGhIjKL aBcDeFgHiIjKl

  AbCDeFgHiJkL aBcDeFGhIjKl  AbCdEfGhIiJKl  AbCdEfGhIjKl ABcDeFgHiJkL
  aBcDeFGhIiJkL  aBcDeFgHiJKl AbCdEfGhIiJkL AbCdEfGhIjKl  AbCdEFgHiJkL
  aBcDeFgHIiJkL  aBcDeFgHiJkL AbCdEfGhIjKl  AbCdEFgHiIjKl  AbCdEfGHiJkL
  aBcDeFgHiJkL AbCdEfGhIiJkL aBCdEfGhIjKl  AbCdEfGHiIjKl  AbCdEfGhIjKL
  aBcDeFgHiJkL aBCdEfGhIiJkL aBcDeFGhIjKl  AbCdEfGhIJkL aBcDeFgHiIjKl
  ABcDeFgHiJkL aBcDeFGhIiJkL aBcDeFgHIjKl  AbCdEfGhIjKl ABcDeFgHiIjKl
  AbCDeFgHiJkL aBcDeFgHIjKl  AbCdEfGhIiJkL  AbCdEfGhIjKl AbCDeFgHiJkL
  aBcDeFgHIiJkL  aBcDeFgHiJKl AbCdEfGhIiJkL aBCdEfGhIjKl  AbCdEfGHiJkL
  aBcDeFgHiIJkL  aBcDeFgHiJkL aBCdEfGhIjKl  AbCdEFgHiIjKl  AbCdEfGhIJkL
  aBcDeFgHiIjKl  ABcdeFgHiJkL )
}
Chinese_103 =
漢・新

太初暦 -103 - 84

漢・魏

四分暦 85 - 237

蜀漢

四分暦 221 - 264

PatternTableBasedLuniSolar, {
'origin_of_MSC'=>-103, 'origin_of_LSC'=>1683490,
'before' => 'Chinese_221', 'after' => 'Chinese0239', 'note' => 'Chinese',
'indices'=> ChineseIndices,
'rule_table'=> %w(
      ABcdeFgHiJkL aBCdEfGhIjKl  AbCdEfFGhIjKl  AbCdEfGhIJkL

  aBcDeFgHiJkL aBCcDeFgHiJkL aBcDEfGhIjKl  AbCdEfGhIJkLl  AbCdEfGhIjKl
  ABcDeFgHiJkL aBcDEfGhIiJkL aBcDeFgHIjKl  AbCdEfGhIjKL aBcDeEfGhIjKl
  AbCDeFgHiJkL aBcDeFgHIjKl  AaBcDeFgHiJKl  AbCdEfGhIjKl AbCDeFgHiJjKl
  AbCdEFgHiJkL aBcDeFgHiJKl  AbCdEfGgHiJkL  aBCdEfGhIjKl AbCdEFgHiJkL
  aBcCdEfGhIJkL  aBcDeFgHiJkL AbCdEfGhIjKkL aBcDEfGhIjKl  AbCdEfGhIJkL
  aBcDeFgHhIjKL  aBcDeFgHiJkL aBcDEfGhIjKl  AbCdEeFGhIjKl  AbCdEfGhIjKL
  aBcDeFgHiJkL aAbCDeFgHiJkL aBcDeFGhIjKl  AbCdEfGhIiJKl  AbCdEfGhIjKl
  ABcDeFgHiJkL aBcDeFGgHiJkL aBcDeFgHiJKl  AbCdEfGhIjKl ABcDdEfGhIjKl
  AbCdEFgHiJkL aBcDeFgHIjKlL aBcDeFgHiJkL  AbCdEfGhIjKl AbCdEFgHhIjKl
  AbCdEfGHiJkL aBcDeFgHiJkL  AbCdEeFgHiJkL  aBCdEfGhIjKl AbCdEfGHiJkL

  aBbCdEfGhIjKL  aBcDeFgHiJkL aBCdEfGhIjJkL aBcDeFGhIjKl  AbCdEfGhIJkL
  aBcDeFfGhIjKl  ABcDeFgHiJkL aBcDeFGhIjKl  AbCcDeFgHIjKl  AbCdEfGhIjKl
  ABcDeFgHiJkLl  AbCDeFgHiJkL aBcDeFgHIjKl  AbCdEfGhHiJkL  AbCdEfGhIjKl
  AbCDeFgHiJkL aBcDdEfGHiJkL aBcDeFgHiJKl  AbCdEfGhIjKl AaBCdEfGhIjKl
  AbCdEfGHiJkL aBcDeFgHiJJkL aBcDeFgHiJkL  aBCdEfGhIjKl AbCdEFfGhIjKl
  AbCdEfGhIJkL aBcDeFgHiJkL  aBCcDeFgHiJkL  aBcDEfGhIjKl AbCdEfGhIJkLl
  AbCdEfGhIjKL aBcDeFgHiJkL  aBcDEfGhIiJkL  aBcDeFgHIjKl AbCdEfGhIjKL
  aBcDeEfGhIjKl  AbCDeFgHiJkL aBcDeFGhIjKl  AaBcDeFgHiJKl  AbCdEfGhIjKl
  AbCDeFgHiJjKl  AbCdEFgHiJkL aBcDeFgHiJKl  AbCdEfGgHiJkL  AbCdEfGhIjKl
  AbCdEFgHiJkL aBcCdEfGhIJkL aBcDeFgHiJkL  AbCdEfGhIjKkL  aBcDEfGhIjKl

  AbCdEfGHiJkL aBcDeFgHhIjKL aBcDeFgHiJkL  aBcDEfGhIjKl AbCdEeFGhIjKl
  AbCdEfGhIjKL aBcDeFgHiJkL  aABcDeFgHiJkL  aBcDeFGhIjKl AbCdEfGhIiJKl
  AbCdEfGhIjKl ABcDeFgHiJkL  aBcDeFGgHiJkL  aBcDeFgHIjKl AbCdEfGhIjKl
  ABcDdEfGhIjKl  AbCdEFgHiJkL aBcDeFgHIjKlL aBcDeFgHiJkL  AbCdEfGhIjKl
  AbCDeFgHhIjKl  AbCdEfGHiJkL aBcDeFgHiJkL  AbCdEeFgHiJkL  aBCdEfGhIjKl
  AbCdEfGHiJkL aBbCdEfGhIJkL aBcDeFgHiJkL  aBCdEfGhIjJkL  aBcDeFGhIjKl
  AbCdEfGhIJkL aBcDeFfGhIjKl ABcDeFgHiJkL  aBcDEfGhIjKl AbCcDeFgHIjKl
  AbCdEfGhIjKl ABcDeFgHiJkLl AbCDeFgHiJkL  aBcDeFgHIjKl AbCdEfGhHiJKl
  AbCdEfGhIjKl AbCDeFgHiJkL  aBcDdEfGHiJkL  aBcDeFgHiJKl AbCdEfGhIjKl
  AaBCdEfGhIjKl  AbCdEFgHiJkL aBcDeFgHiJJkL aBcDeFgHiJkL  aBCdEfGhIjKl

  AbCdEFfGhIjKl  AbCdEfGhIJkL aBcDeFgHiJkL  AbCcDeFgHiJkL  aBcDEfGhIjKl
  AbCdEfGhIJkLl  AbCdEfGhIjKL aBcDeFgHiJkL  aBcDEfGhIiJkL  aBcDeFGhIjKl
  AbCdEfGhIjKL aBcDeEfGhIjKl AbCDeFgHiJkL  aBcDeFGhIjKl AaBcDeFgHiJKl
  AbCdEfGhIjKl ABcDeFgHiJjKl AbCdEFgHiJkL  aBcDeFgHiJKl AbCdEfGgHiJkL
  AbCdEfGhIjKl AbCdEFgHiJkL  aBcCdEfGHiJkL  aBcDeFgHiJkL AbCdEfGhIjKkL
  aBcDEfGhIjKl AbCdEfGHiJkL  aBcDeFgHhIjKL  aBcDeFgHiJkL aBCdEfGhIjKl
  AbCdEeFGhIjKl  AbCdEfGhIjKL aBcDeFgHiJkL  aABcDeFgHiJkl  AbCdEfGhIjKl
  AbCDeFgHiJjKl  AbCdEfGHiJkL aBcDeFgHiJKl  AbCdEfGgHiJkL  aBCdEfGhIjKl
  AbCdEFgHiJkL aBcCdEfGhIJkL aBcDeFgHiJkL  aBCdEfGhIjKkL  aBcDEfGhIjKl
  AbCdEfGhIJkL aBcDeFgHhIjKL aBcDeFgHiJkL  aBcDEfGhIjKl AbCdEeFgHIjKl

  AbCdEfGhIjKL aBcDeFgHiJkL  aAbCDeFgHiJkL  aBcDeFGhIjKl AbCdEfGhIiJKl
  AbCdEfGhIjKl AbCDeFgHiJkL  aBcDeFGgHiJkL  aBcDeFgHiJKl AbCdEfGhIjKl
  ABcDdEfGhIjKl  AbCdEFgHiJkL aBcDeFgHiJKlL aBcDeFgHiJkL  AbCdEfGhIjKl
  AbCdEFgHhIjKl  AbCdEfGHiJkL aBcDeFgHiJkL  AbCdEeFgHiJkL  aBcDEfGhIjKl
  AbCdEfGHiJkL aBbCdEfGhIjKL aBcDeFgHiJkL  aBCdEfGhIjJkL  aBcDeFGhIjKl
  AbCdEfGhIjKL aBcDeFfGhIjKl ABcDeFgHiJkL  aBcDeFGhIjKl AbCcDeFgHIjKl
  AbCdEfGhIjKl ABcDeFgHiJkLl AbCdEFgHiJkL  aBcDeFgHIjKl AbCdEfGhHiJkL
  AbCdEfGhIjKl AbCDeFgHiJkL  aBcDdEfGHiJkL  aBcDeFgHiJkL AbCdEfGhIjKl
  AaBCdEfGhIjKl  AbCdEfGHiJkL aBcDeFgHiJJkL aBcDeFgHiJkL  aBCdEfGhIjKl
  AbCdEfFGhIjKl  AbCdEfGhIJkL aBcDeFgHiJkL  aBCcDeFgHiJkL  aBcDeFGhIjKl

  AbCdEfGhIJkLl  AbCdEfGhIjKl ABcDeFgHiJkL  aBcDEfGhIiJkL  aBcDeFgHIjKl
  AbCdEfGhIjKl ABcDeEfGhIjKl AbCDeFgHiJkL  aBcDeFgHIjKl AaBcDeFgHiJKl
  AbCdEfGhIjKl AbCDeFgHiJjKl AbCdEfGHiJkL  aBcDeFgHiJKl AbCdEfGgHiJkL
  aBCdEfGhIjKl AbCdEFgHiJkL  aBcCdEfGhIJkL  aBcDeFgHiJkL aBCdEfGhIjKkL
  aBcDEfGhIjKl AbCdEfGhIJkL  aBcDeFgHhIjKL  aBcDeFgHiJkL aBcDEfGhIjKl
  AbCdEeFgHIjKl  AbCdEfGhIjKL aBcDeFgHiJkL  aAbCDeFgHiJkL  aBcDeFGhIjKl
  AbCdEfGhIiJKl  AbCdEfGhIjKl AbCDeFgHiJkL  aBcDeFGgHiJkL  aBcDeFgHiJKl
  AbCdEfGhIjKl ABcDdEfGhIjKl AbCdEFgHiJkL  aBcDeFgHiJKlL  aBcDeFgHiJkL
  AbCdEfGhIjKl AbCdEFgHhIjKl AbCdEfGHiJkL  aBcDeFgHiJkL AbCdEeFgHiJkL
  aBcDEfGhIjKl AbCdEfGHiJkL  aBbCdEfGhIjKL  aBcDeFgHiJkL aBCdEfGhIjJkL

  aBcDeFGhIjKl AbCdEfGhIjKL  aBcDeFfGhIjKl  ABcDeFgHiJkL aBcDeFGhIjKl
  AbCcDeFgHIjKl  AbCdEfGhIjKl ABcDeFgHiJkLl AbCdEFgHiJkL  aBcDeFgHIjKl
  AbCdEfGhHiJkL  AbCdEfGhIjKl AbCDeFgHiJkL  aBcDdEfGHiJkL  aBcDeFgHiJkL
  AbCdEfGhIjKl AaBCdEfGhIjKl AbCdEfGHiJkL  aBcDeFgHiJJkL  aBcDeFgHiJkL
  aBCdEfGhIjKl AbCdEfFGhIjKl AbCdEfGhIJkL  aBcDeFgHiJkL aBCcDeFgHiJkL
  aBcDeFGhIjKl AbCdEfGhIJkLl AbCdEfGhIjKl  ABcDeFgHiJkL aBcDEfGhIiJkL
  aBcDeFgHIjKl AbCdEfGhIjKl  ABcDeEfGhIjKl  AbCDeFgHiJkL aBcDeFgHIjKl
  AaBcDeFgHiJKl  AbCdEfGhIjKl AbCDeFgHiJjKl AbCdEfGHiJkL  aBcDeFgHiJKl
  AbCdEfGgHiJkL  aBCdEfGhIjKl AbCdEFgHiJkL  aBcCdEfGhIJkL  aBcDeFgHiJkL
  aBCdEfGhIjKkL  aBcDEfGhIjKl AbCdEfGhIJkL  aBcDeFgHhIjKL  aBcDeFgHiJkL

  aBcDEfGhIjKl AbCdEeFgHIjKl AbCdEfGhIjKL  aBcDeFgHiJkL aAbCDeFgHiJkL
  aBcDeFGhIjKl AbCdEfGhIiJKl AbCdEfGhIjKl  AbCDeFgHiJkL aBcDeFGgHiJkL
  aBcDeFgHiJKl AbCdEfGhIjKl  ABcDdEfGhIjKl  AbCdEFgHiJkL )
}
Chinese0008 =

太初暦 7 - 23 (歳首 建丑月)

PatternTableBasedLuniSolar, {
'origin_of_MSC'=>7, 'origin_of_LSC'=>1723652, 'border'=>'0*12-01',
'before' => 'Chinese_103', 'after' => 'Chinese_103', 'note' => 'Chinese',
'indices'=> _IndicesM12,
'rule_table'=> %w(
      aBcDeFgHiJkL  aABcDeFgHiJkL  aBcDeFGhIjKl AbCdEfGhIiJKl
  AbCdEfGhIjKl ABcDeFgHiJkL  aBcDeFGgHiJkL  aBcDeFgHIjKl AbCdEfGhIjKl
  ABcDdEfGhIjKl  AbCdEFgHiJkL aBcDeFgHIjKlL aBcDeFgHiJkL  AbCdEfGhIjKl
  AbCDeFgHhIjKl  AbCdEfGHiJkL aBcDeFgHiJkL  )
}
Chinese0223 =

四分暦 222

乾象暦 223 - 280

PatternTableBasedLuniSolar, {
'origin_of_MSC'=>222, 'origin_of_LSC'=>1802173,
'before' => 'Chinese_103', 'after' => 'Chinese0239', 'note' => 'Chinese',
'indices'=> ChineseIndices,
'rule_table'=> %w(
      AbCdEfFGhIjKl  aBcDeFgHiJKl AbCdEfGhIjKl  ABcDdEfGhIjKl
  AbCdEFgHiJkL aBcDeFgHiJKlL aBcDeFgHiJkL  aBCdEfGhIjKl AbCdEFgHhIjKl
  AbCdEfGhIJkL aBcDeFgHiJkL  aBCdEeFgHiJkL  aBcDEfGhIjKl AbCdEfGhIJkL
  aBbCdEfGhIjKl  ABcDeFgHiJkL aBcDEfGhIjJkL aBcDeFgHIjKl  AbCdEfGhIjKl
  ABcDeFfGhIjKl  AbCDeFgHiJkL aBcDeFgHIjKl  AbCcDeFgHiJKl  AbCdEfGhIjKl
  AbCDeFgHiJkLl  AbCdEfGhIJkL aBcDeFgHiJkL  AbCdEfGhHiJkL  aBCdEfGhIjKl

  AbCdEfGHiJkL aBcDdEfGhIjKL aBcDeFgHiJkL  aBcDEfGhIjKl AaBcDeFGhIjKl
  AbCdEfGhIjKL aBcDeFgHiJjKl AbCDeFgHiJkL  aBcDeFGhIjKl AbCdEfGgHiJKl
  AbCdEfGhIjKl AbCDeFgHiJkL  aBcCdEFgHiJkL  aBcDeFgHiJKl AbCdEfGhIjKkL
  aBCdEfGhIjKl AbCdEFgHiJkL  aBcDeFgHhIJkL  aBcDeFgHiJkL aBCdEfGhIjKl
  AbCdEEfGhIjKl  AbCdEfGhIJkL aBcDeFgHiJkL  aABcDeFgHiJkL  aBcDeFGhIjKl
  AbCdEfGhIJjKl  AbCdEfGhIjKl ABcDeFgHiJkL  aBcDeFGgHiJkL  aBcDeFgHiJKl )
}
Chinese0237 =

四分暦 236

景初暦 237 - 239 (歳首 建丑月)

PatternTableBasedLuniSolar, {
'origin_of_MSC'=>236, 'origin_of_LSC'=>1807282, 'border'=>'0*12-01',
'before' => 'Chinese_103', 'after' => 'Chinese0239', 'note' => 'Chinese',
'indices'=> _IndicesM12,
'rule_table'=> %w(AaBcDeFgHiJKl AbCdeFgHiJkL  aBcDeFGhIjJkL  aBcDeFgHiJKl)
}
Chinese0239 =
魏・晋・宋

景初暦 239 - 444 (泰始・永初暦も同じもの)

及び十六国

北魏

景初暦 386? - 451

PatternTableBasedLuniSolar, {
'origin_of_MSC'=>239, 'origin_of_LSC'=>1808404,
'before' => 'Chinese0237', 'after' => 'Chinese0445', 'note' => 'Chinese',
'indices'=> ChineseIndices,
'rule_table'=> %w(
              aBcDeFgHiJKl  AbCdEfGhIjKl
  AbCDeFfGhIjKl  AbCdEFgHiJkL aBcDeFgHiJKl  AbCcDeFgHiJkL  aBCdEfGhIjKl
  AbCdEFgHiJkLl  AbCdEfGhIJkL aBcDeFgHiJkL  aBCdEfGhIiJkL  aBcDeFGhIjKl

  AbCdEfGhIJkL aBcDeEfGhIjKl ABcDeFgHiJkL  aBcDeFGhIjKl AaBcDeFgHIjKl
  AbCdEfGhIjKl ABcDeFgHiJjKl AbCdEFgHiJkL  aBcDeFgHIjKl AbCdEfGgHiJkL
  AbCdEfGhIjKl AbCdEFgHiJkL  aBcCdEfGHiJkL  aBcDeFgHiJkL AbCdEfGhIjKkL
  aBcDEfGhIjKl AbCdEfGHiJkL  aBcDeFgHhIjKL  aBcDeFgHiJkL aBcDEfGhIjKl
  AbCdEeFGhIjKl  AbCdEfGhIjKL aBcDeFgHiJkL  aAbCDeFgHiJkL  aBcDeFGhIjKl
  AbCdEfGhIiJKl  AbCdEfGhIjKl ABcDeFgHiJkL  aBcDeFGgHiJkL  aBcDeFgHiJKl
  AbCdEfGhIjKl AbCDdEfGhIjKl AbCdEFgHiJkL  aBcDeFgHiJKlL  aBcDeFgHiJkL
  aBCdEfGhIjKl AbCdEFgHhIjKl AbCdEfGhIJkL  aBcDeFgHiJkL aBCdEeFgHiJkL
  aBcDEfGhIjKl AbCdEfGhIJkL  aBbCdEfGhIjKl  ABcDeFgHiJkL aBcDEfGhIjJkL
  aBcDeFgHIjKl AbCdEfGhIjKl  ABcDeFfGhIjKl  AbCDeFgHiJkL aBcDeFgHIjKl

  AbCcDeFgHiJkL  AbCdEfGhIjKl AbCDeFgHiJkLl AbCdEfGHiJkL  aBcDeFgHiJkL
  AbCdEfGhHiJkL  aBCdEfGhIjKl AbCdEfGHiJkL  aBcDdEfGhIjKL  aBcDeFgHiJkL
  aBCdEfGhIjKl AaBcDeFGhIjKl AbCdEfGhIjKl  AbCDeFgHiJjKl  ABcDeFgHiJkL
  aBcDeFGhIjKl AbCdEfGgHiJKl AbCdEfGhIjKl  ABcDeFgHiJkL aBcCdEFgHiJkL
  aBcDeFgHiJKl AbCdEfGhIjKkL AbCdEfGhIjKl  AbCdEFgHiJkL aBcDeFgHhIJkL
  aBcDeFgHiJkL AbCdEfGhIjKl  AbCdEEfGhIjKl  AbCdEfGhIJkL aBcDeFgHiJkL
  AaBcDeFgHiJkL  aBcDEfGhIjKl AbCdEfGhIJjKl AbCdEfGhIjKL  aBcDeFgHiJkL
  aBcDEfGgHiJkL  aBcDeFgHIjKl AbCdEfGhIjKL  aBcDdEfGhIjKl  AbCDeFgHiJkL
  aBcDeFgHIjKlL  aBcDeFgHiJKl AbCdEfGhIjKl  AbCDeFgHhIjKl  AbCdEfGHiJkL
  aBcDeFgHiJKl AbCdEeFgHiJkL aBCdEfGhIjKl  AbCdEfGHiJkL aBbCdEfGhIJkL

  aBcDeFgHiJkL aBCdEfGhIjJkL aBcDeFGhIjKl  AbCdEfGhIJkL aBcDeFfGhIjKl
  ABcDeFgHiJkL aBcDeFGhIjKl  AbCcDeFgHIjKl  AbCdEfGhIjKl ABcDeFgHiJkLl
  AbCdEFgHiJkL aBcDeFgHIjKl  AbCdEfGhHiJkL  AbCdEfGhIjKl AbCdEFgHiJkL
  aBcDdEfGHiJkL  aBcDeFgHiJkL AbCdEfGhIjKl  AaBcDEfGhIjKl  AbCdEfGhIJkL
  aBcDeFgHiJjKL  aBcDeFgHiJkL aBcDEfGhIjKl  AbCdEfGgHIjKl  AbCdEfGhIjKL
  aBcDeFgHiJkL aBcCDeFgHiJkL aBcDeFgHIjKl  AbCdEfGhIjKLl  AbCdEfGhIjKl
  AbCDeFgHiJkL aBcDeFgHIiJkL aBcDeFgHiJKl  AbCdEfGhIjKl AbCDeEfGhIjKl
  AbCdEfGHiJkL aBcDeFgHiJKl  AaBcDeFgHiJkL  aBCdEfGhIjKl AbCdEfGHiJjKl
  AbCdEfGhIJkL aBcDeFgHiJkL  aBCdEfGgHiJkL  aBcDeFGhIjKl AbCdEfGhIJkL
  aBcCdEfGhIjKl  ABcDeFgHiJkL aBcDeFGhIjKkL aBcDeFgHIjKl  AbCdEfGhIjKl

  ABcDeFgHhIjKl  AbCdEFgHiJkL aBcDeFgHIjKl  AbCdEeFgHiJkL  AbCdEfGhIjKl
  AbCdEFgHiJkL aBbCdEfGHiJkL aBcDeFgHiJkL  AbCdEfGhIjJkL  aBcDEfGhIjKl
  AbCdEfGHiJkL aBcDeFfGhIjKL aBcDeFgHiJkL  aBcDEfGhIjKl AbCcDeFGhIjKl
  AbCdEfGhIjKL aBcDeFgHiJkLl AbCDeFgHiJkL  aBcDeFGhIjKl AbCdEfGhHiJKl
  AbCdEfGhIjKl AbCDeFgHiJkL  aBcDdEFgHiJkL  aBcDeFgHiJKl AbCdEfGhIjKl
  AaBCdEfGhIjKl  AbCdEFgHiJkL aBcDeFgHiJJkL aBcDeFgHiJkL  AbCdEfGhIjKl
  AbCdEFfGhIjKl  AbCdEfGhIJkL aBcDeFgHiJkL  aBCcDeFgHiJkL  aBcDEfGhIjKl
  AbCdEfGhIJkLl  AbCdEfGhIjKl ABcDeFgHiJkL  aBcDEfGhIiJkL  aBcDeFgHIjKl
  AbCdEfGhIjKl ABcDeEfGhIjKl AbCDeFgHiJkL  aBcDeFgHIjKl AaBcDeFgHiJkL
  AbCdEfGhIjKl AbCDeFgHiJJkl AbCdEfGHiJkL  aBcDeFgHiJkL AbCdEfGgHiJkL

  aBCdEfGhIjKl)
}
Chinese0445 =
宋・斉・梁

元嘉暦 445 - 509 (建元暦も同じもの)

梁・陳

大明暦 510 - 589

及び後梁

PatternTableBasedLuniSolar, {
'origin_of_MSC'=>445, 'origin_of_LSC'=>1883618,
'before' => 'Chinese0239', 'after' => 'Chinese0523', 'note' => 'Chinese',
'indices'=> ChineseIndices,
'rule_table'=> %w(
      AbCdEeFgHiJkL
  AbCdEfGhIjKl AbCDeFgHiJkL  aBbCdEfGHiJkL  aBcDeFgHiJkL AbCdEfGhIjJkL

  aBCdEfGhIjKl AbCdEfGHiJkL  aBcDeFfGhIjKL  aBcDeFgHiJkL aBCdEfGhIjKl
  AbCcDeFGhIjKl  AbCdEfGhIjKL aBcDeFgHiJkLl AbCDeFgHiJkL  aBcDeFGhIjKl
  AbCdEfGhIiJKl  AbCdEfGhIjKl AbCDeFgHiJkL  aBcDeEFgHiJkL  aBcDeFgHiJKl
  AbCdEfGhIjKl AaBCdEfGhIjKl AbCdEFgHiJkL  aBcDeFgHiJKkL  aBcDeFgHiJkL
  aBCdEfGhIjKl AbCdEFgGhIjKl AbCdEfGhIJkL  aBcDeFgHiJkL aBCcDeFgHiJkL
  aBcDEfGhIjKl AbCdEfGhIJkLl AbCdEfGhIjKl  ABcDeFgHiJkL aBcDEfGhIiJkL
  aBcDeFgHIjKl AbCdEfGhIjKl  ABcDeEfGhIjKl  AbCDeFgHiJkL aBcDeFgHIjKl
  AaBcDeFgHiJkL  AbCdEfGhIjKl AbCDeFgHiJjKl AbCdEfGHiJkL  aBcDeFgHiJkL
  AbCdEfGgHiJkL  aBCdEfGhIjKl AbCdEfGHiJkL  aBcDdEfGhIjKL  aBcDeFgHiJkL
  aBCdEfGhIjKlL  aBcDeFGhIjKl AbCdEfGhIjKL  aBcDeFgHhIjKl  ABcDeFgHiJkL

  aBcDeFGhIjKl AbCdDeFgHiJKl AbCdEfGhIjKl  ABcDeFgHiJkL aBbCdEFgHiJkL
  aBcDeFgHiJKl AbCdEfGhIjJkL AbCdEfGhIjKl  AbCdEFgHiJkL aBcDeFfGhIJkL
  aBcDeFgHiJkL AbCdEfGhIjKl  AbCcDEfGhIjKl  AbCdEfGhIJkL aBcDeFgHiJkLl
  ABcDeFgHiJkL aBcDEfGhIjKl  AbCdEfGhHIjKl  AbCdEfGhIjKl ABcDeFgHiJkL
  aBcDEeFgHiJkL  aBcDeFgHIjKl AbCdEfGhIjKl  ABbCdEfGhIjKl  AbCDeFgHiJkL
  aBcDeFgHIjJkL  aBcDeFgHiJkL AbCdEfGhIjKl  AbCDeFfGhIjKl  AbCdEfGHiJkL
  aBcDeFgHiJkL AbCcDeFgHiJkL aBCdEfGhIjKl  AbCdEfGHiJkLl  AbCdEfGhIjKL
  aBcDeFgHiJkL aBCdEfGhIiJkL aBcDeFGhIjKl  AbCdEfGhIjKL aBcDeEfGhIjKl
  ABcDeFgHiJkL aBcDeFGhIjKl  AaBcDeFgHiJKl  AbCdEfGhIjKl ABcDeFgHiJjKl
  AbCdEFgHiJkL aBcDeFgHiJKl  AbCdEfGgHiJkL  AbCdEfGhIjKl AbCdEFgHiJkL

  aBcCdEfGhIJkL  aBcDeFgHiJkL AbCdEfGhIjKkL aBcDEfGhIjKl  AbCdEfGhIJkL
  aBcDeFgHhIjKL  aBcDeFgHiJkL aBcDEfGhIjKl  AbCdDeFgHIjKl  AbCdEfGhIjKL
  aBcDeFgHiJkL aBbCDeFgHiJkL aBcDeFgHIjKl  AbCdEfGhIjJKl  AbCdEfGhIjKl
  AbCDeFgHiJkL aBcDeFfGHiJkL aBcDeFgHiJKl  AbCdEfGhIjKl AbCDdEfGhIjKl
  AbCdEfGHiJkL aBcDeFgHiJKlL aBcDeFgHiJkL  aBCdEfGhIjKl AbCdEfGHiIjKl
  AbCdEfGhIJkL aBcDeFgHiJkL  aBCdEeFgHiJkL  aBcDeFGhIjKl AbCdEfGhIJkL
  aBbCdEfGhIjKl  ABcDeFgHiJkL aBcDeFGhIjKkL aBcDeFgHIjKl  AbCdEfGhIjKl
  ABcDeFgGhIjKl  AbCdEFgHiJkL aBcDeFgHIjKl  AbCcDeFgHiJkL  )
}
Chinese0384 =
後秦

三紀暦 384 - 417

PatternTableBasedLuniSolar, {
'origin_of_MSC'=>384, 'origin_of_LSC'=>1861352,
'before' => 'Chinese0239', 'after' => 'Chinese0239', 'note' => 'Chinese',
'indices'=> ChineseIndices,
'rule_table'=> %w(
  AbCdEfGhIjKl AbCDeEfGhIjKl
  AbCdEfGHiJkL aBcDeFgHiJkL  AaBcDeFgHiJkL  aBCdEfGhIjKl AbCdEfGHiJjKl
  AbCdEfGhIjKL aBcDeFgHiJkL  aBCdEfGgHiJkL  aBcDeFGhIjKl AbCdEfGhIjKL
  aBcCdEfGhIjKl  ABcDeFgHiJkL aBcDeFGhIjKkL aBcDeFgHiJKl  AbCdEfGhIjKl

  ABcDeFgHhIjKl  AbCdEFgHiJkL aBcDeFgHiJKl  AbCdEeFgHiJkL  AbCdEfGhIjKl
  AbCdEFgHiJkL aBbCdEfGhIJkL aBcDeFgHiJkL  AbCdEfGhIjJkL  aBcDEfGhIjKl
  AbCdEfGhIJkL aBcDeFfGhIjKL aBcDeFgHiJkL  aBcDEfGhIjKl AbCcDeFgHIjKl
  AbCdEfGhIjKL aBcDeFgHiJkLl )
}
Chinese0412 =
北涼

玄始暦 412 - 439

北魏

玄始暦 452 - 522

PatternTableBasedLuniSolar, {
'origin_of_MSC'=>412, 'origin_of_LSC'=>1871570,
'before' => 'Chinese0239', 'after' => 'Chinese0523', 'note' => 'Chinese',
'indices'=> ChineseIndices,
'rule_table'=> %w(
      aBcDeFgHhIjKL  aBcDeFgHiJkL aBcDEfGhIjKl  AbCdEeFgHIjKl
  AbCdEfGhIjKL aBcDeFgHiJkL  aBbCDeFgHiJkL  aBcDeFgHIjKl AbCdEfGhIjKKl
  AbCdEfGhIjKl AbCDeFgHiJkL  aBcDeFgGHiJkL  aBcDeFgHiJKl AbCdEfGhIjKl
  AbCDdEfGhIjKl  AbCdEfGHiJkL aBcDeFgHiJKl  AaBcDeFgHiJkL  aBCdEfGhIjKl
  AbCdEfGHiIjKl  AbCdEfGhIJkL aBcDeFgHiJkL  aBCdEeFgHiJkL  aBcDeFGhIjKl
  AbCdEfGhIJkL aBbCdEfGhIjKl ABcDeFgHiJkL  aBcDeFGhIjKkL  aBcDeFgHIjKl
  AbCdEfGhIjKl ABcDeFgHhIjKl AbCdEFgHiJkL  aBcDeFgHIjKl AbCdDeFgHiJkL
  AbCdEfGhIjKl AbCdEFgHiJkLl AbCdEfGHiJkL  aBcDeFgHiJkL AbCdEfGhIiJkL

  aBcDEfGhIjKl AbCdEfGHiJkL  aBcDeFfGhIjKL  aBcDeFgHiJkL aBcDEfGhIjKl
  AbBcDeFGhIjKl  AbCdEfGhIjKL aBcDeFgHiJjKl AbCDeFgHiJkL  aBcDeFGhIjKl
  AbCdEfGgHiJKl  AbCdEfGhIjKl AbCDeFgHiJkL  aBcDdEFgHiJkL  aBcDeFgHiJKl
  AbCdEfGhIjKl AaBCdEfGhIjKl AbCdEFgHiJkL  aBcDeFgHiIJkL  aBcDeFgHiJkL
  aBCdEfGhIjKl AbCdEFfGhIjKl AbCdEfGhIJkL  aBcDeFgHiJkL aBCcDeFgHiJkL
  aBcDEfGhIjKl AbCdEfGhIJkKl AbCdEfGhIjKl  ABcDeFgHiJkL aBcDEfGgHiJkL
  aBcDeFgHIjKl AbCdEfGhIjKl  ABcDdEfGhIjKl  AbCDeFgHiJkL aBcDeFgHIjKl
  AaBcDeFgHiJkL  AbCdEfGhIjKl AbCDeFgHiIjKl AbCdEfGHiJkL  aBcDeFgHiJkL
  AbCdEeFgHiJkL  aBCdEfGhIjKl AbCdEfGHiJkL  aBbCdEfGhIjKL  aBcDeFgHiJkL
  aBCdEfGhIjKkL  aBcDeFGhIjKl AbCdEfGhIjKL  aBcDeFgHhIjKl  ABcDeFgHiJkL

  aBcDeFGhIjKl AbCdDeFgHiJKl AbCdEfGhIjKl  ABcDeFgHiJkLl  AbCdEFgHiJkL
  aBcDeFgHiJKl AbCdEfGhIiJkL AbCdEfGhIjKl  AbCdEFgHiJkL aBcDeFfGhIJkL
  aBcDeFgHiJkL AbCdEfGhIjKl  AbBcDEfGhIjKl  AbCdEfGhIJkL aBcDeFgHiJjKl
  ABcDeFgHiJkL aBcDEfGhIjKl  AbCdEfGgHIjKl  AbCdEfGhIjKl ABcDeFgHiJkL
  aBcDEeFgHiJkL  aBcDeFgHIjKl )
}
Chinese0540 =
東魏・北斉

興和暦 540 - 550

北斉

天保暦 551 - 577

PatternTableBasedLuniSolar, {
'origin_of_MSC'=>540, 'origin_of_LSC'=>1918317,
'before' => 'Chinese0523', 'after' => 'Chinese0523', 'note' => 'Chinese',
'indices'=> ChineseIndices,
'rule_table'=> %w(
      aBcDeEfGhIjKl
  ABcDeFgHiJkL aBcDeFGhIjKl  AaBcDeFgHIjKl  AbCdEfGhIjKl ABcDeFgHiJjKl
  AbCdEFgHiJkL aBcDeFgHIjKl  AbCdEfGgHiJkL  AbCdEfGhIjKl AbCdEFgHiJkL

  aBbCdEfGhIJkL  aBcDeFgHiJkL AbCdEfGhIjKkL aBcDEfGhIjKl  AbCdEfGhIJkL
  aBcDeFgHhIjKL  aBcDeFgHiJkL aBcDEfGhIjKl  AbCdDeFgHIjKl  AbCdEfGhIjKL
  aBcDeFgHiJkLl  AbCDeFgHiJkL aBcDeFgHIjKl  AbCdEfGhIjJKl  AbCdEfGhIjKl
  AbCDeFgHiJkL aBcDeFfGHiJkL aBcDeFgHiJKl  AbCdEfGhIjKl AbBCdEfGhIjKl
  AbCdEfGHiJkL aBcDeFgHiJKkL aBcDeFgHiJkL  aBCdEfGhIjKl AbCdEfGHhIjKl
  AbCdEfGhIJkL aBcDeFgHiJkL  )
}
Chinese0523 =
北魏・西魏

正光暦 523 - 565

及び北周

東魏

正光暦 534 - 539

北周

天和暦 566 - 578

北周・隋

大象暦 579 - 583

開皇暦 584 - 596

隋・唐

大業暦 597 - 618

戊寅元暦 619 - 665

唐・周

麟徳暦 666 - 728 総法 1340(小余の分母)

大衍暦 729 - 761 通法 3040( 〃 )

五紀暦 762 - 783 通法 1340( 〃 )

正元暦 784 - 806

観象暦 807 - 821

宣明暦 822 - 892 統法 8400( 〃 )

唐~後晋

崇玄暦 893 - 938

(後晋

調元暦 939 - 943)

(後晋

調元暦? 944 - 946)

PatternTableBasedLuniSolar, {
'origin_of_MSC'=>523, 'origin_of_LSC'=>1912115,
'before' => 'Chinese0412', 'after' => 'Chinese0956', 'note' => 'Chinese',
'indices'=> ChineseIndices,
'rule_table'=> %w(
          AbCdEfGhIjKL  aBbCdEfGhIjKl  AbCDeFgHiJkL
  aBcDeFgHIjKkL  aBcDeFgHiJKl AbCdEfGhIjKl  AbCDeFgGhIjKl  AbCdEfGHiJkL
  aBcDeFgHiJKl AbCcDeFgHiJkL aBCdEfGhIjKl  AbCdEfGHiJkLl  AbCdEfGhIJkL
  aBcDeFgHiJkL aBCdEfGhIiJkL aBcDeFGhIjKl  AbCdEfGhIJkL aBcDeEfGhIjKl
  ABcDeFgHiJkL aBcDeFGhIjKl  AaBcDeFgHIjKl  AbCdEfGhIjKl ABcDeFgHiJjKl
  AbCdEFgHiJkL aBcDeFgHIjKl  AbCdEfGgHiJkL  AbCdEfGhIjKl AbCdEFgHiJkL

  aBcDdEfGHiJkL  aBcDeFgHiJkL AbCdEfGhIjKlL aBcDEfGhIjKl  AbCdEfGHiJkL
  aBcDeFgHhIjKL  aBcDeFgHiJkL aBcDEfGhIjKl  AbCdEeFGhIjKl  AbCdEfGhIjKL
  aBcDeFgHiJkL aAbCDeFgHiJkL aBcDeFGhIjKl  AbCdEfGhIiJKl  AbCdEfGhIjKL
  aBcDeFgHiJkL AbCdEfGhHiJkL aBCdEfGhIjKl  AbCdEfGHiJkL aBcDdEfGhIjKL
  aBcDeFgHiJkL aBCdEfGhIjKl  AaBcDeFGhIjKl  AbCdEfGhIJkL aBcDeFgHiJjKl
  ABcDeFgHiJkL aBcDeFGhIjKl  AbCdEfFgHIjKl  AbCdEfGhIJkL aBcDeFgHiJkL
  AbCcDeFgHiJkL  aBcDEfGhIjKl AbCdEfGhIJkLl aBCdEfGhIjKl  AbCdEFgHiJkL
  aBcDeFgHhIJkL  aBcDeFgHiJkL aBCdEfGhIjKl  AbCdDEfGhIjKl  AbCdEfGhIJkL
  aBcDeFgHiJkLl  ABcDeFgHiJkL aBcDEfGhIjKl  AbCdEfGhIJjKl  AbCdEfGhIjKl
  ABcDeFgHiJkL aBcDeEfGhIJkL aBcDeFgHiJkL  aBCdEfGhIjKl AaBcDeFGhIjKl

  AbCdEfGhIJkL aBcDeFgHiJjKl ABcDeFgHiJkL  aBcDeFGhIjKl AbCdEfGgHIjKl
  AbCdEfGhIjKl ABcDeFgHiJkL  aBcCdEFgHiJkL  aBcDeFgHIjKl AbCdEfGhIjKkL
  AbCdEfGhIjKl AbCdEFgHiJkL  aBcDeFgHIiJkL  aBcDeFgHiJkL AbCdEfGhIjKl
  AbCdEEfGhIjKl  AbCdEfGHiJkL aBcDeFgHiJkL  ABbcdEfGhIJKl  AbCdeFgHiJkL
  ABcDefGhIjJkL  AbCDefGhIjKl ABcDeFgHiJkL  aBcDeFGgHiJkL  aBcDeFgHIjKl
  AbCdeFgHIJkL aBccDeFgHIjKL aBcdEfgHIjKL  AbCdEfghIJkLL  AbCdeFgHiJkL
  AbCdEfGhIjKl AbCDeFgHhIjKl AbCdEFgHiJkL  aBcdEFgHIjKl AbCddEfGHIjKl
  AbCdeFgHiJKL aBcDefGhIjKL  AbBcdEfgHiJKL  aBCdeFghIjKL aBCdEfGhIjJkL
  aBcDEfGhIjKl AbCdEfGHiJkL  aBcdEfFGhIJKl  aBcdEfGhIJKl aBcDeFGhIjKl
  AbCcDeFgHiJKl  AbCdEfGhIjKl AbCDeFgHiJkLl AbCdEFgHiJkL  aBcDeFgHiJKl

  AbCdEfGhIiJkL  aBCdEfGhIjKl AbCdEFgHiJkL  aBcDeEfGhIJkL  aBcDeFgHiJkL
  aBCdEfGhIjKl AaBcDEfGhIjKl AbCdEfGhIJkL  aBcDeFgHiJjKl  ABcDeFgHiJkL
  aBcDEfGhIjKl AbCdEfGgHIjKl AbCdEfGhIjKl  ABcDeFgHiJkL aBcCDeFgHiJkL
  AbCdEfgHiJkL AbCDeFghIjKlL aBCdEfGhIjKl  AbCdEfGHiJKl aBcDeFgHIiJKl
  aBcdEfGHiJKL aBcdeFgHiJKL  aBcDeeFgHiJKL  aBcDefGhIjKL aBCdEfgHiJkL
  aBCcDeFgHiJkL  aBcDEfGhIjKl AbCdEfGHiJkKl AbcDeFGhIJkL  aBcdEfGhIJKl
  AbCdeFgGhIJKl  AbCdeFghIJkL ABcDefGhiJKL  aBcDEefGhIjKl  AbCDeFgHiJkL
  aBcDeFGhIjKl AaBcDeFgHIjKl AbcDeFgHIJkL  aBcdEfGhIIJkL  aBcdEfgHIjKL
  AbCdeFghIJkL ABcDeeFghIJkL AbCdEfGhIjKl  AbCDeFgHiJkL aBbCdEFgHiJkL
  abCdEFgHIjKl AbcDeFgHIJJkl AbcDeFgHiJKL  aBcdEfgHIjKL AbCdeFggHiJKL

  aBCdeFghIjKL aBCdEfGhIjkL  AbCdDEfGhIjKl  aBCdEfGHiJkL abCdEfGHiJKl
  AabCdEfGHiJKl  AbcDefGHiJKL aBcdEfgHIiJKL aBcdEfGhiJKL  aBCdEfgHiJkL
  aBCdEfFgHijKL  aBcDEfGhIjKl aBCdEfGhIJkL  aBbcDeFGhIJkL  aBcdEfGhIJKl
  AbCdeFgHiJKlL  AbcDefGhIJkL ABcdEfGhiJKL  aBcDeFggHiJkL  AbCDeFghIjKl
  AbCDEfgHIjkL aBcDEeFGhIjKl AbcDeFGhIJkL  abCdeFGhIJKlL  aBcdEfgHIJkL
  AbCdefGhIJkL AbCDefGhiIJkL aBCdEfgHiJkL  AbCdEfGhIjKl AbCdEFfGhIjKl
  AbCdEfGHiJKl aBcDeFgHIjKL  aBccDefGHiJKL  abCdeFgHiJKL aBcDefGhIjKKl
  ABcDefGhIjKl ABCdEfGhiJkL  aBCdEFgHhiJkL  aBcDEfGhIjKl AbCdEfGHiJkL
  AbcDdEfGHiJKl  AbcDefGHiJKl ABcdEfgHiJKL  aBBcdEfgHiJKl  ABcDeFghIjKl
  ABCdEfGhiJjKl  ABcDeFgHiJkL aBcDEfGhIjKl  AbCdEfFgHIjKl  AbCdeFGhIJKl

  AbcDefGhIJKl AbCcdEfGhIJkL AbCdeFgHiJkL  ABcDefGhIjKkL  aBCdEfGhIjKl
  AbCDeFgHiJkL aBcDeFGhHiJkL aBcDeFgHIJkL  abCdeFgHIJkL AbcDdeFgHIjKL
  aBcDefGhIJkL AbCdEfgHiJkL  AaBCdEfgHiJkL  AbCdEfGhIjKl AbCDeFgHiJjKl
  AbCdEfGHiJkL aBcdEfGHIjKl  AbCdeFfGHiJKl  AbCdefGHiJKL aBcDefGhiJKL
  aBCcdEfgHiJKL  aBcDeFgHijKL aBCdEfGhIjKkl ABcDEfGhIjKl  AbcDEfGHiJkL
  abCdEfGHhIJkL  aBcdEfGhIJKl AbCdeFgHiJKl  ABcDeefGHiJKL  aBcdEfgHiJKl
  ABcDeFghIjKL aAbCDeFgHijKl ABcDeFGhIjKl  aBcDeFGhIJjKl  aBcDeFgHIJkL
  abCdeFgHIJkL AbCdeeFgHIJkL AbcDefGhIJkL  AbCdEfgHiJkL ABcDdEfgHiJkL
  AbCdEFgHijKl AbCDeFgHIjKll AbCdEfGHIjKl  aBcDeFgHIjKL aBcdEfgHHiJKL
  aBcdeFgHiJKL aBcDefGhIjKL  AbCdEefGhIjKL  aBCdEfgHiJkL aBCdEfGhIjKl

  AaBcDEfGhIjKl  AbCdEfGHiJKl aBcdEfGHiJJKl aBcdEfGhIJKl  AbCdeFgHiJKL
  aBcDefFgHiJKl  ABcDefGhIjKl ABCdEfGhiJkL  aBCcDeFgHiJkL  aBcDEfGhIJkl
  AbCdEfGHiJKlL  abcDeFGhIJKl AbcdEfGhIJKl  ABcdeFgHhIJKl  AbCdEfgHiJKl
  ABcDeFghIjKl ABcDEefGhIjKl AbCDeFgHiJkL  aBcDeFGhIjKl AaBcDeFgHIjKl
  AbCdeFgHIJkL AbcDefGhIJjKL aBcDefGhIjKL  AbCdEfghIJkL ABcDeFggHiJkL
  AbCDefGhIjKl AbCDeFgHiJkL  aBcCdEFgHiJkL  aBcdEFgHIjKl AbCdeFgHIjKLl
  AbCdeFgHiJKL aBcDefGhIjKL  AbCdEfggHiJKL  aBCdeFgHijKL aBCdEfGhIjKl
  AbCdEeFGhIjKl  AbCdEfGHiJkL aBcdEfGHiJKl  AaBcdEfGhIJKl  AbCdeFgHiJKL
  aBcDefgHiIJKl  ABcDefgHiJkL ABcDeFgHijKL  aBCdEfGgHijKL  aBcDeFGhIjKl
  aBcDEfGhIJkL aBccDeFGhIJkL aBcdEfGhIJKl  AbCdefGhIJKkL  AbCdefGhIJkL

  ABcDefgHiJkL ABcDeFggHiJkL AbCDeFgHijKl  AbCDeFgHIjKl aBcDdEFgHIjKl
  aBcDeFgHIjKL aBcdEfgHIJkL  AbBcdEfgHIjKL  AbCdefGhIjKL AbCdEfGhiJjKL
  aBCdEfGhiJkL AbCdEFgHijKl  AbCDeFfGhIJkl  AbCdEfGHiJKl aBcDeFgHIjKL
  aBccdEfGHiJKL  aBcdeFgHiJKL aBCdefGhIjKLl ABcDeFghIjKL  aBCdEfGhiJkL
  aBCdEfGhHiJkL  aBcDEfGhIjKl AbCdEfGHiJKl  aBcDdeFGhIJkL  AbcDefGhIJKl
  ABcdeFgHiJKl ABbCdEfgHiJkL ABcDeFghIjKl  ABcDEfgHiJjKl  AbCDeFgHiJkL
  aBcDeFGhIjKl AbCdEfGgHIjKl AbCdeFgHIJkL  aBcDefGhIJkL AbCcDefGhIjKL
  AbCdEfgHiJkL ABcDefGhIjKkL AbCdEfGhIjKl  AbCDeFgHiJkL aBcDeFgHIiJkL
  aBcdEfGHIjKl AbcDeFgHIjKL  aBcDeeFgHiJKL  aBcdEfgHIjKL AbCdEfghIjKL
  AaBCdeFgHijKL  aBCdEfGhIjKl AbCdEFgHiJjKl aBCdEfGHiJkL  abCdEfGHiJKl

  AbCdeFfGhIJKl  AbCdefGHiJKL aBcDefgHiJKL  aBCdDefgHiJKl  ABcDeFgHijKL
  aBcDEfGhIjkLl  ABcDeFGhIjKl aBcDeFGhIJkL  abCdEfGhHIJkL  aBcdEfGhIJKl
  AbCdefGhIJKl ABcDeefGhIJkL ABcdEfgHiJkL  ABcDeFgHijKl ABbCDeFgHijKl
  AbCDeFgHIjKl aBcDeFGhIJjKl aBcDeFgHIjKL  aBcdeFgHIJkL AbCdefFgHIjKL
  AbCdefGhIjKL AbCdEfgHiJkL  AbCDdEfgHiJkL  aBCdEFgHijKl AbCdEFgHiJKll
  AbCdEfGHiJKl aBcDeFgHIjKL  aBcdeFgHHiJKL  aBcdeFgHiJKL aBcDefGhIjKL
  aBCdEefGhIjKl  ABCdEfgHiJkL aBCdEfGhIjKl  AaBcDEfGhIjKl  AbCdEfGHiJKl
  aBcDefGHiJKkl  ABcdEfGhIJkl ABCdeFgHiJKl  ABcDefGgHiJkL  ABcDefGhIjKl
  ABcDEfgHiJkL aBcCDeFgHiJkL aBcDeFGhIjKl  AbCdeFGhIJkLl  AbcDeFgHIJkL
  aBcdEfGhIJkL)
}
Chinese0689 =
唐・周

麟徳暦 688 - 700 (歳首 建子月)

PatternTableBasedLuniSolar, {
'origin_of_MSC'=>688, 'origin_of_LSC'=>1972387, 'border'=>'0*11-01',
'before' => 'Chinese0523', 'after' => 'Chinese0523', 'note' => 'Chinese',
'indices'=> [
     When.Index('Chinese::MonthA', {:branch=>{1=>'_m:Calendar::閏'}}),
     When::Coordinates::DefaultDayIndex
 ],
'rule_table'=> %w(
          AbcDeFgHIJkL  aBcdEfGhIIJkL  aBcdEfgHIjKL
  AbCdeFghIJkL ABcDeeFghIJkL AbCdEfGhIjKl  AbCDeFgHiJkL aBbCdEFgHiJkL
  abCdEFgHIjKl AbcDeFgHIJJkl AbcDeFgHiJKL  aBcdEfgHIjKL AbCdeFggHiJKL)
}
Chinese0761 =

大衍暦 760-761 (歳首 建子月)

五紀暦 762 (歳首 建子月)

PatternTableBasedLuniSolar, {
'origin_of_MSC'=>760, 'origin_of_LSC'=>1998670, 'border'=>'0*11-01',
'before' => 'Chinese0523', 'after' => 'Chinese0523', 'note' => 'Chinese',
'indices'=> [
     When.Index('Chinese::MonthB', {:branch=>{1=>'_m:Calendar::閏'}}),
     When::Coordinates::DefaultDayIndex
 ],
'rule_table'=> %w(AbcDdeFgHIjKL aBcDefGhIJkL  AbCdEfgHiJkL)
}
Chinese0618 =

『唐・日本における進朔に関する研究』(2013-10版)を使用する場合の朔閏表(一部修正あり)

隋・唐

大業暦 618

戊寅元暦 619 - 665

唐・周

麟徳暦 666 - 728 総法 1340(小余の分母)

大衍暦 729 - 761 通法 3040( 〃 )

五紀暦 762 - 783 通法 1340( 〃 )

正元暦 784 - 806

観象暦 807 - 821

宣明暦 822 - 892 統法 8400( 〃 )

唐~後梁

崇玄暦 893 - 907

PatternTableBasedLuniSolar, {
'origin_of_MSC'=>618, 'origin_of_LSC'=>1946814,
'before' => 'Chinese0523', 'after' => 'Chinese0523', 'note' => 'Chinese',
'indices'=> ChineseIndices,
'rule_table'=> %w(    aBcDeFgHiJkL  ABbcDefGhIJKl  AbCdeFgHiJkL
  ABcDefGhIjJkL  AbCDefGhIjKl AbCDeFgHiJkL  aBcDeFGgHiJkL  aBcdEFgHIjKl
  AbCdeFgHIJkL aBcCdeFgHIjKL aBcdEfgHIjKL  AbCdeFghIJkLL  AbCdeFgHiJkL
  AbCdEfGhIjKl AbCDeFgHhIjKl AbCdEFgHiJkL  aBcdEfGHIjKl AbCddEfGHIjKl
  AbCdeFghIJKL aBcDefgHIjKL  AbBcDefgHiJKL  aBCdeFghIjKL aBCdEfGhIjJkL
  aBcDEfGhIjKl AbcDEfGHiJkL  aBcdEfFGhIJkL  aBcdEfGhIJKl aBcDeFGhIjKl
  AbCcDeFgHiJKl  AbCdEfGhIjKl AbCDeFgHiJkLl AbCdEFgHiJkL  aBcDeFgHiJKl

  AbCdEfGhIiJkL  aBCdEfGhIjKl AbCdEFgHiJkL  aBcDeEfGhIJkL  aBcDeFgHiJkL
  aBCdEfGhIjKl AaBcDEfGhIjKl AbCdEfGhIJkL  aBcDeFgHiJjKl  ABcDeFgHiJkL
  aBcDEfGhIjKl AbCdEfGgHIjKl AbCdEfGhIjKl  ABcDeFgHiJkL aBcCDeFgHiJkL
  AbCdEfgHiJkL AbCDeFghIjKlL aBCdEfGhIjKl  AbCdEFgHiJKl aBcDeFgHIiJKl
  aBcdEfGHiJKL abCdeFgHiJKL  aBcDeeFgHiJKL  aBcDefGhIjKL aBCdEfgHiJkL
  aBCcDeFgHiJkL  AbcDEfGhIjKL AbcdEfGHiJkKl AbcDeFGhIJkL  aBcdEfGhIJKl
  AbCdeFgGhIJKl  AbCdeFgHiJKl ABcDefGhIjKL  aBcDEefGhIjKl  AbCDeFgHiJkL
  aBcDeFGhIjKl AaBcDeFgHIjKl AbcDeFgHIJkL  aBcdEfGhIIJkL  aBcdEfgHIjKL
  AbCdeFghIJKL aBcDeeFghIJKL abCdEfGhIjkL  AbCDeFgHiJkL aBbCdEFgHiJkL
  abCdEFgHIjKl AbcDeFgHIJJkl AbcDeFgHiJKL  aBcdEfgHIJkL AbCdeFggHiJKL

  aBCdeFghIjKL aBCdEfGhIjkL  AbCdDEfGhIjkL  aBCdEfGHiJkL abCdEfGHiJKl
  AabCdEfGHiJKl  AbcDefGHiJKL aBcDefGhIiJKL aBcDefGhIjKL  aBCdEfgHiJkL
  aBCDeFfgHiJkL  aBCdEfGhIjKl AbCdEfGHiJkL  AbbcDeFGHiJkL  aBcdEfGHiJKl
  AbCdeFgHiJKLl  AbcDefGhIJkL ABcdEfgHiJkL  ABcDeFggHiJkL  ABcDeFghIJkL
  aBcDEfGhIjKl AbCdEeFGhIjKl AbcDeFGhIJkL  aBcdEfGhIJkLL  AbcdEfGhIJkL
  AbCdeFghIJkL ABcDefGhiIJkL AbCDefGhiJkL  aBCdEfGHijKl AbCdEFfGhIjKl
  AbCdEfGHiJKl aBcdEfGHIjKL  abCcdEfGHiJKl  AbCdeFgHiJKL aBcDefGhIjKKl
  ABCdeFghIjKL aBCdEfGhiJkL  aBCdEFgHhiJkL  aBcDEfGHiJkl AbCdEfGHiJKl
  AbcDdEfGHiJKl  AbcDefGHiJKL aBcdEfgHiJKL  aBBcdEfgHiJKl  ABcDeFghIjKl
  ABCdEfGhiJjKl  ABcDeFGhiJkL aBcDEfGhIjKl  AbCdEfFGhIJkL  abCdeFGhIJkL

  AbcDefGhIJKl ABccDefGhIJkL AbCdEfgHiJkL  ABcDeFghIjKkL  AbCDeFghIjKl
  AbCDeFGhiJkL aBcDeFGhHiJkL aBcDeFgHIjKL  abCdeFgHIJkL AbcDdeFgHIjKL
  aBcdeFGhIJkL AbCdEFghiJkL  AaBCdEfgHiJkL  AbCdEfGhIjKl AbCDeFgHiJjKl
  AbCdEfGHiJkL aBcdEfGHIjKl  AbCdeFfGHiJKl  AbCdefGHiJKL aBcDefgHiJKL
  AbCcDefgHiJKL  aBCdeFgHijKL aBCdEfGhIjKkl ABcDeFGhIjKl  aBcDEfGhIJkL
  abCdEfGHhIJkL  abCdEfGhIJKl AbCdefGhIJKl  ABcDeefGHiJKL  aBcdEfgHiJKl
  ABcDeFgHijKL aAbCDeFgHijKl AbCDeFGhIjKl  AbcDeFGhIJjKl  aBcDeFgHIJkL
  aBcdeFgHIJKl AbCdeeFgHIjKL AbCdefGhIJkL  AbCdEfGhiJkL AbCDdEfgHiJkL
  AbCdEFgHijKl AbCDeFgHIjKll AbCdEfGHIjKl  aBcDeFgHIjKL aBcdEfgHHiJKL
  aBcdeFgHiJKL aBCdefGhIjKL  AbCdEefGhIjKL  aBCdEfgHiJkL aBCdEfGhIjKl

  AaBcDEfGhIjKl  AbCdEfGHiJKl aBCdefGHiJJKl aBcdEfGhIJKl  AbCdeFgHiJKL
  aBcDeFfgHiJKl  ABcDefGhIjKl ABcDEfGhiJkL  aBCcDeFgHiJkL  aBcDEfGhIJkl
  AbCdEfGHiJKlL  abcDeFGhIJKl AbcDefGhIJKl  ABcdeFgHhIJKl  AbCdEfgHiJkL
  ABcDeFghIjKl ABcDEefGhIjKl AbCDeFgHiJkL  aBcDeFGhIjKl AaBcDeFgHIjKL
  abcDeFgHIJkL AbcDefGhIJjKL aBcDefGhIjKL  AbCdEfghIJkL ABcDeFggHiJkL
  AbCDefGhIjKl AbCDeFgHiJkL  aBcCdEFgHiJkL  aBcdEFgHIjKl AbCdeFgHIjKLl
  AbCdeFgHiJKL aBcDefGhIjKL  AbCdEfggHiJKL  aBCdeFgHijKL aBCdEfGhIjKl
  AbCdEeFGhIjKl  AbCdEfGHiJkL aBcdEfGHiJKl  AaBcdEfGhIJKl  AbCdeFgHiJKL
  aBcDefgHiIJKl  ABcDefgHiJKl ABcDeFgHijKL  aBCdEfGgHijKL  aBcDeFGhIjKl
  aBcDEfGhIJkL aBccDeFGhIJkL aBcdEfGhIJKl  AbCdefGhIJKkL  AbCdefGhIJkL

  ABcDefgHiJkL ABcDeFgHhiJkL AbCDeFgHijKl  AbCDeFgHIjKl aBcDdEFgHIjKl
  AbcDeFgHIjKL aBcdEfgHIJkL  AbBcdeFgHIjKL  AbCdefGhIjKL AbCdEfgHiJjKL
  aBCdEfGhiJkL AbCdEFgHijKl  AbCdEFfGhIJkl  AbCdEfGHiJKl AbcDeFgHIjKL
  aBccdEfGHiJKL  aBcdeFgHiJKL aBCdefGhIjKLl ABcDeFghIjKL  aBCdEfGhiJkL
  aBCdEfGhHiJkL  aBcDEfGhIjKl AbCdEfGHiJKl  aBcDdeFGhIJkL  AbcdEfGhIJKl
  ABcdeFgHiJKl ABbCdeFgHiJkL ABcDeFghIjKl  ABcDEfgHiJjKl  AbCDeFgHiJkL
  aBcDeFGhIjKl AbCdEfGgHIjKl AbCdeFgHIJkL  aBcDefGhIJkL AbCcDefGhIjKL
  AbCdEfghIJkL ABcDefGhIjKkL AbCdEfGhIjKl  AbCDeFgHiJkL aBcDeFgHIiJkL
  aBcdEFghIJKl AbCdeFgHIjKL  aBcDeeFgHiJKL  aBcDefgHIjKL AbCdEfghIjKL
  AaBCdeFgHijKL  aBCdEfGhIjKl AbCdEFgHiJjKl AbCdEfGHiJkL  abCdEFgHIjKL

  abCdeFfGHiJKl  AbcDefGHiJKL aBcDefgHiJKL  aBCdDefgHiJKl  ABcDeFgHijKL
  aBcDEfGhIjkLl  ABcDeFGhIjKl)
}
Chinese0618B =

『唐・日本における進朔に関する研究』(2013-10版)を使用する場合の朔閏表(一部修正あり)

唐・周

麟徳暦 688 - 700 (歳首 建子月)

PatternTableBasedLuniSolar, {
'origin_of_MSC'=>688, 'origin_of_LSC'=>1972387, 'border'=>'0*11-01',
'before' => 'Chinese0618', 'after' => 'Chinese0618', 'note' => 'Chinese',
'indices'=> [
     When.Index('Chinese::MonthA', {:branch=>{1=>'_m:Calendar::閏'}}),
     When::Coordinates::DefaultDayIndex
 ],
'rule_table'=> %w(    AbcDeFgHIJkL  aBcdEfGhIIJkL  aBcdEfgHIjKL 
  AbCdeFghIJKL aBcDeeFghIJKL abCdEfGhIjkL  AbCDeFgHiJkL aBbCdEFgHiJkL
  abCdEFgHIjKl AbcDeFgHIJJkl AbcDeFgHiJKL  aBcdEfgHIJkL AbCdeFggHiJKL)
}
Chinese0618C =

『唐・日本における進朔に関する研究』(2013-10版)を使用する場合の朔閏表(一部修正あり)

大衍暦 760-761 (歳首 建子月)

五紀暦 762 (歳首 建子月)

PatternTableBasedLuniSolar, {
'origin_of_MSC'=>760, 'origin_of_LSC'=>1998670, 'border'=>'0*11-01',
'before' => 'Chinese0618', 'after' => 'Chinese0618', 'note' => 'Chinese',
'indices'=> [
     When.Index('Chinese::MonthB', {:branch=>{1=>'_m:Calendar::閏'}}),
     When::Coordinates::DefaultDayIndex
 ],
'rule_table'=> %w(AbcDdeFgHIjKL aBcdeFGhIJkL  AbCdEFghiJkL)
}
Chinese0939 =
後晋

調元暦 939 - 943

後晋

調元暦? 944 - 946

調元暦 947 - 994

大明暦 995 - 1125

金・西遼

大明暦 1123 - 1181

金・西遼

重修大明暦 1182 - 1234

重修大明暦 1215 - 1280

元・明

授時暦 1281 - 1644 (大統暦もほとんど同じ)

南明

大統暦 1645 - 1662

PatternTableBasedLuniSolar, {
'origin_of_MSC'=>939, 'origin_of_LSC'=>2064050,
'before' => 'Chinese0523', 'after' => 'Chinese1645', 'note' => 'Chinese',
'indices'=> ChineseIndices,
'rule_table'=> %w(
  ABcDefGgHiJkL  ABcDefGhIjKl
  ABcDEfgHiJkL aBcCDeFgHiJkL aBcDeFGhIjKl  AbCdeFGhIJkLl  AbcDeFgHIJkL
  aBcdEfGhIJkL AbCdeFggHIjKL AbCdeFghIJkL  AbCDefGhIjKl AbCDeEfGhIjKl

  AbCDeFgHiJkL aBcDeFgHIjKl  AabCdEfGHIjKl  AbcDeFgHIjKL aBcdEfgHIiJKL
  aBcdEfgHIjKL AbCdeFghIjKL  AbCdEfGghIjKL  aBCdEfGhIjkL AbCdEFgHiJkL
  abCcDEfGHiJkL  abCdEfGHiJKl AbcDeFgHiJKLl AbcDEfgHiJKL  aBcdEfgHiJKL
  aBCdeFghHiJKl  ABcDeFghIjKL aBcDEfGhIjkL  aBCdEeFGhIjKl  aBcDeFGhIJkL
  abCdEfGhIJKl AbbCdeFGhIJKl AbcDefGhIJKl  ABcdEfgHiJJkL  AbCdEfgHiJkL
  ABcDeFghIjKl ABcDEfGgHijKl AbCDeFgHIjKl  aBcDeFGhIJkL abCcDeFgHIjKL
  abCdeFgHIJkL AbcDefGhIJkLL AbcDefGhIjKL  AbCdEfgHiJkL AbCDeFghHiJkL
  aBCdEfGhIjKl AbCdEFgHiJkL  aBcDeEfGHiJKl  aBcdEfGHIjKL abCdeFgHIjKL
  AbbCdeFgHiJKL  aBcDefGhIjKL aBCdEfgHiJjKl ABcDEfgHiJkL  aBCdEfGhIjKl
  AbCdEfGGhIjKl  AbCdEfGHiJKl aBcdEfGHiJKl  AbCddEfGhIJKl  AbCdeFgHiJKl

  ABcDefGhiJKkL  ABcDefGhIjKl ABcDeFgHiJkL  aBcDEfGhIiJkL  aBcDeFGhIjKl
  AbcDeFGhIJkL aBcdEeFgHIJkL aBcdEfGhIJkL  AbCdeFghIJkL ABbCdeFghIJkL
  AbCDefGhiJKl ABcDeFgHiJjKl AbCdEFgHiJkL  abCDeFgHIjKl AbcDeFgGHIjKl
  AbcDeFgHIjKL aBcdEfgHIjKL  AbCddEfgHIjKL  AbCdeFghIjKL AbCDefGhiJkLL
  aBCdEfGhIjkL aBCdEFgHiJkL  abCdEFgHIiJkL  abCdEfGHiJKl AbcDeFgHiJKL
  aBcdEefGhIJKl  ABcdEfgHiJKL aBCdeFghIjKL  aBCcDeFghIjKl  ABcDEfGhIjkL
  aBCdEfGHiJjKl  aBcDeFGhIJkL abCdeFGhIJKl  AbcDefFGhIJKl  AbcDefGhIJKl
  ABcdEfgHiJKl ABcDdEfgHiJkL ABcDeFghIjKl  ABcDEfGhIjkLl  AbCDeFgHIjkL
  aBcDeFGhIJkL abCdeFGhIIjKL abCdeFgHIJkL  AbcDefGhIJkL ABcdEefGhIjKL
  AbCdEfgHiJkL AbCDeFghIjKl  AaBCdEfGhIjKl  AbCdEFgHiJkL aBcDeFgHIjKKl

  aBcdEfGHIjKL abCdeFgHIjKL  AbcDefGgHiJKL  aBcDefGhIjKL aBCdEfgHiJkL
  aBCcDEfgHiJkL  aBCdEfGhIjKl AbCdEfGHiJkLl AbCdEfGHiJkL  aBcdEfGHiJKl
  AbCdeFgHhIJKl  AbCdeFgHiJKl ABcDefGhiJKl  ABCdEffGhiJKl  ABcDeFgHiJkL
  aBcDEfGhIjKl AbCcDeFGhIjKl AbcDeFGhIJkL  aBcdEfGhIJKkL  aBcdEfGhIJkL
  AbCdeFghIJkL ABcDefGghIJkL AbCDefGhiJkL  AbCDeFgHiJkl ABcDdEFgHiJkL
  abCDeFgHIjKl AbcDeFgHIJkLl AbcDeFgHIjKL  aBcdEfgHIjKL AbCdeFghHiJKL
  aBCdeFghIjKL AbCdEfGhiJkL  AbCDeFfGhIjkL  aBCdEfGHiJkL abCdEFgHIjKl
  AbbCdEfGHiJKl  AbcDefGHiJKL aBcdEfgHiJKLl ABcdEfgHiJKL  aBCdeFghIjKL
  aBCdEfGhhIjKl  ABcDEfGhiJkL aBcDEfGHiJkL  abCdDeFGhIJkL  abCdEfGhIJKl
  AbcDefGhIJKl ABbcDefGhIJKl ABcdEfgHiJKl  ABcDeFghIiJkL  ABcDeFghIjKl

  ABcDeFGhiJkL aBcDEfFgHIjkL aBcDeFGhIJkL  abCdeFGhIJkL AbCcdeFgHIJkL
  AbcDefGhIjKL AbCdEfgHiJjKL AbCdEfgHiJkL  AbCDeFghIjKl AbCDeFgHhIjKl
  AbCdEFgHiJkL aBcDeFgHIjKL  abCddEfGHIjKL  abCdeFgHiJKL aBcDefGhIjKL
  AaBcDefGhIjKL  aBCdEfgHiJkL aBCdEfGhIiJkL aBcDEfGhIjKl  AbCdEfGHiJkL
  aBcdEeFGHiJkL  aBcdEfGHiJKl AbCdeFgHiJKL  aBcCdeFghIJKl  ABcDefGhiJKl
  ABCdEfgHijKKl  ABcDeFgHiJkL aBcDEfGhIjKl  AbCdEfGHhIjKl  AbcDeFGhIJkL
  aBcdEfGhIJKl AbCddEfgHIJkL AbCdeFghIJkL  ABcDefGhiJKl ABbCDefGhiJkL
  AbCDeFgHiJkl ABcDeFGhIjJkL abCdEFgHIjKl  AbcDeFgHIJkL aBcdEfFgHIjKL
  aBcdEfgHIjKL AbCdeFghIjKL  AbCDdeFghIjKL  aBCdEfGhiJkL AbCDeFgHiJkkL
  aBCdEfGHiJkl ABcdEFgHiJKl  AbcDeFgHHiJKl  AbcDefGHiJKL aBcdEfgHiJKL

  aBCddEfgHiJKL  aBCdeFghIjKL aBCdEfGhiJkLl ABcDEfGhiJkL  aBcDEfGHiJkl
  AbCdEfGHiJJkL  abCdeFGhIJKl AbcDefGhIJKl  ABcdEffGhIJKl  ABcdEfgHiJKl
  ABcDeFghIjKl ABbCDeFghIjKl ABcDeFGhiJkL  aBcDeFGhIjKkL  aBcDeFgHIjKL
  abCdeFgHIJkL AbcDefGgHIJkL AbcDefGhIjKL  AbCdEfgHiJkL ABcDeEfgHiJkL
  AbCDeFghIjKl AbCDeFgHiJkL  aAbCdEFgHiJkL  aBcdEFgHIjKL abCdeFgHIiJKL
  abCdeFgHiJKL aBcDefGhIjKL  AbCdEffGhiJKL  aBCdEfgHiJkL aBCdEfGhIjKl
  AbCcDEfGhIjKl  AbCdEfGHiJkL aBcdEfGHiJKkL aBcdEfGHiJKl  AbCdeFgHiJKL
  aBcDefGghIJKl  ABcDefGhiJKl ABCdEfgHijKL  aBCdEeFgHiJkL  aBcDEfGhIjKl
  AbcDEfGHiJkL aBbcDeFGhIJkL aBcdEfGhIJKl  AbCdeFghIJJkL  AbCdeFghIJkL
  ABcDefGhiJKl ABcDeFfGhiJkL AbCDeFgHiJkl  ABcDeFGhIjKl aBbCdEFgHIjKl

  AbcDeFgHIJkL aBcdEfgHIJkLL aBcdEfgHIjKL  AbCdeFghIjKL AbCdEfGhhIjKL
  aBCdEfGhiJkL AbCdEFgHijKl  AbCDdEfGHiJkL  abCdEfGHiJKl AbcDeFgHIjKL
  aBbcDefGHiJKL  aBcdEfgHiJKL aBCdeFghIiJKL aBcDeFghIjKL  aBCdEfGhiJkL
  aBCdEFgGhiJkL  aBcDEfGhIJkl AbCdEfGHiJKl  AbcCdeFGhIJKl  AbcDefGhIJKl
  ABcdEfgHiJKLl  ABcdEfgHiJKl ABcDeFghIjKl  ABcDEfGhhIjKl  AbCDeFgHiJkL
  aBcDeFGhIjKl AbCdEeFgHIjKL abCdeFgHIJkL  AbcDefGhIJKl ABbcDefGhIjKL
  AbCdEfgHiJkL ABcDeFghIiJkL AbCDefGhIjKl  AbCDeFgHiJkL aBcDeFGgHiJkL
  aBcdEFgHIjKl AbCdeFgHIjKL  aBcDdeFgHiJKL  aBcDefgHIjKL AbCdEfgHijKLL
  aBCdEfgHijKL aBCdEfGhIjKl  AbCdEFgHhIjKl  AbCdEfGHiJkL aBcdEfGHiJKl
  AbCddEfGhIJKl  AbCdeFgHiJKL aBcDefGhiJKL  aBBcDefGhiJKl  ABcDeFgHijKL

  aBcDEfGhIjJkl  ABcDeFGhIjKl aBcDEfGhIJkL  aBcdEfFGhIJkL  aBcdEfGhIJKl
  AbCdefGhIJKl ABcDdeFghIJkL ABcDefgHiJkL  ABcDeFgHijKkL  AbCDeFgHijKl
  AbCDeFGhIjKl aBcDeFGhIIjKl AbcDeFgHIJkL  aBcdEfgHIJkL AbCdeEfgHIjKL
  AbCdeFghIjKL AbCdEfGhiJkL  AaBCdEfGhiJkL  AbCDeFgHijKl AbCDeFgHIjKkl
  AbCdEfGHiJKl AbcDeFgHIjKL  aBcdeFfGHiJKL  aBcdEfgHiJKL aBCdeFghIjKL
  aBCcDeFghIjKL  aBCdEfGhiJkL aBCdEfGHijKkL aBcDEfGhIJkl  AbCdEfGHiJKl
  abCdEfGhHIJkL  aBcdEfgHIJKl AbCdeFghIJkL  ABcDeeFghIjKL  AbCDefGhiJkL
  AbCDeFgHijKl ABbCDeFgHijKl AbCDeFgHIjKl  AbcDeFgHIJjKl  AbcDeFgHIjKL
  aBcdEfgHIjKL AbCdeFfgHiJKL AbCdeFghIjKL  AbCdEfGhiJkL AbCDdEfGhiJkL
  aBCdEFgHiJkl AbCdEFgHiJKll AbCdEfGHiJKl  AbcDefGHiJKL aBcdEfgHHIjKL

  aBcdEfgHiJKL aBCdeFghIjKL  aBCdEeFghIjKl  ABcDEfGhiJkL aBcDEfGhIjKl
  AaBcDeFGhIJkl  AbCdeFGhIJKl AbcDefGhIJKkL AbcDefGhIJKl  ABcdEfgHiJKl
  ABcDeFggHiJkL  ABcDeFghIjKl ABcDeFgHiJkL  aBcCDeFgHiJkL  aBcDeFGhIjKl
  AbCdeFGhIJkL AabCdeFgHIJkL AbcDefGhIjKL  AbCdeFgHhIjKL  AbCdEfgHiJkL
  AbCDefGhIjKl AbCDeEfGhIjKl AbCdEFgHiJkL  aBcdEFgHIjKl AaBcdEfGHIjKl
  AbCdeFgHiJKL aBcDefGhIiJKL aBcDefGhiJKL  aBCdEfgHijKL aBCdEfGgHijKL
  aBCdEfGhIjKl AbCdEfGHiJkL  aBccDeFGHiJkL  aBcdEfGHiJKl AbCdeFGhiJKLl
  AbCdefGhIJKl ABcDefgHiJKl  ABCdEfgHhiJKl  ABcDeFghIjKl ABcDEfGhIjKl
  aBcDEeFGhIjKl  aBcDeFGhIJkL aBcdEfGhIJKl  AbBcdeFgHIJkL  AbCdefGhIJkL
  ABcDefgHiJjKL  AbCdEfGhiJkL AbCDeFgHijKl  ABcDeFGgHiJkl  AbCdEFgHIjKl

  aBcDeFgHIJkL aBccDefGHIjKL aBcdeFgHIjKL  AbCdefGhIjKL AAbCdefGhIjKL
  AbCdEfGhiJkL AbCDeFgHiiJkL aBCdEfGHijKl  AbCdEFgHiJKl aBcDeEfGHiJKl
  AbcDefGHiJKL aBcdeFgHiJKL  AbCcdeFgHiJKL  aBcDefGhIjKL aBCdEfGhiJjKl
  ABcDEfgHiJkL aBcDEfGhIjKl  AbCdEfGGhIJkl  AbCdeFGhIJKl aBcDefGhIJKl
  ABccdEfGhIJKl  AbCdeFgHiJKl ABcDefGhIjKkL ABcDefGhIjKl  ABcDeFgHiJkL
  aBcDEfGhIiJkL  aBcDeFGhIjKl AbCdeFGhIJkL  aBcDeeFgHIJkL  aBcDefGhIjKL
  AbCdEfghIJkL ABbCdeFgHiJkL AbCDefGhIjKl  AbCDeFgHiJjKl  AbCdEFgHiJkL
  aBcdEFgHIjKl AbCdeFfGHIjKl AbCdeFgHiJKL  aBcDefgHIjKL AbCdDefgHiJKL
  aBCdeFgHijKL aBCdEfGhIjkLL aBcDEfGhIjKl  AbCdEfGHiJkL abCdEfGHIiJkL
  abCdEfGHiJKl AbCdefGHiJKL  aBcDeefGhIJKl  ABcDefgHiJKl ABCdeFghIjKL

  aBCcDeFgHijKl  ABcDEfGhIjKl aBcDEfGHiJkKl aBcDeFGhIJkL  abCdEfGhIJKl
  AbCdefGgHIJkL  AbCdefGhIJkL ABcDefgHiJkL  ABcDdEfgHiJkL  AbCDeFgHijKl
  AbCDeFGhIjkLl  AbCdEFgHIjKl aBcDeFgHIJkL  abCdeFgHIIjKL  aBcdeFgHIjKL
  AbCdefGhIjKL AbCdEefGhIjKL AbCdEfgHiJkL  AbCDeFgHijKl AaBCdEfGhIjKl
  AbCdEfGHiJKl aBcDeFgHIjKLl aBcdEfGHiJKL  aBcdeFgHiJKL aBcDefGgHiJKL
  aBcDefGhIjKL aBCdEfgHiJkL  aBCdDEfgHiJkL  aBcDEfGhIjKl AbCdEfGHiJkLl
  AbCdeFGhIJKl aBcdEfGhIJKl  AbCdeFgHhIJKl  AbCdeFgHiJKl ABcDefGhIjKl
  ABCdEffGhIjKl  ABcDeFgHiJkL aBcDeFGhIjKl  AbBcDeFgHIjKl  AbcDeFgHIJkL
  aBcdEfGhIJKkL  aBcdEfgHIjKL AbCdeFghIJkL  ABcDefGghIJkL  AbCDefGhIjKl
  AbCDeFgHiJkL aBcDdEFgHiJkL abCdEFgHIjKl  AbcDeFgHIjKL aAbcDeFgHiJKL

  aBcdEfgHIjKL AbCdeFghIiJKL aBCdeFghIjKL  aBCdEfGhIjkL AbCdEFfGhIjKl
  aBCdEfGHiJkL abCdEfGHiJKl  AbbCdEfGhIJKl  AbcDefGHiJKL aBcdEfgHiJKKl
  ABcdEfgHiJKl ABCdeFghIJkL  aBCdEfGgHijKl  ABcDEfGhIjKl aBcDEfGhIJkL
  abCcDeFGhIJkL  abCdeFGhIJKl AbcDefGhIJKl  ABbcDefGhIJkL  ABcdEfgHiJkL
  ABcDeFghIiJkL  AbCDeFghIjKl AbCDeFGhIjkL  aBcDeFFgHIjKl  aBcDeFgHIjKL
  abCdeFgHIJkL AbbCdeFgHIjKL AbcDefGhIjKL  AbCdEfgHiJjKL  aBCdEfgHiJkL
  aBCDeFghIjKl AbCDeFgHhIjKl AbCdEfGHiJKl  aBcDefGHIjKL abCddEfGHiJKL
  abCdeFgHiJKL aBcDefGhIjKL  AaBcDefGhIjKL  aBCdEfgHiJkL aBCdEfGhIiJkL
  aBcDEfGhIjKl AbCdEfGHiJkL  aBcdEeFGhIJkL  aBcdEfGhIJKl AbCdefGHiJKL
  aBcCdeFghIJKl  ABcDefGhIjKl ABcDEfgHiJkKl AbCDeFgHiJkL  aBcDeFGhIjKl

  AbcDeFGgHIjKl  AbcDeFgHIJkL aBcdEfGhIJKl  AbCddEfgHIjKL  AbCdeFghIJkL
  ABcDefGhiJkL AAbCdEfGhIjKl AbCDeFgHiJkL  aBcDeFGhIiJkL  abCdEFgHIjKl
  AbcDeFgHIjKL aBcdEefGHiJKL aBcdEfgHiJKL  AbCdeFghIjKL AbCDdeFghIjKL
  aBCdEfGhIjkL AbCdEFgHiJkLl aBcDEfGHiJkL  abCdEfGHiJKl AbcDeFgHhIJKl
  AbcDefGhIJKL aBcdEfgHiJKL  aBCddEfgHiJKl  ABcDeFghIjKl ABCdEfGhiJkLl
  ABcDeFGhIjkL aBcDeFGhIJkL  abCdEfGHiJJkL  abCdeFGhIJKl AbcDefGhIJKl
  ABcdEffGhIJkL  ABcdEfgHiJkL ABcDeFghIjKl  ABbCDeFghIjKl  AbCDeFgHIjkL
  aBcDeFGhIJkLl  aBcDeFgHIjKL abCdeFgHIJkL  AbcDefGgHIjKL  AbcDefGhIjKL
  AbCdEfgHiJkL AbCDeEfgHiJkL aBCdEFghIjKl  AbCdEFgHiJkL aAbCdEfGHiJKl
  aBcdEfGHIjKL abCdeFgHIiJKL abCdeFgHiJKL  aBcDefGhIjKL AbCdEffGhIjKl

  ABCdEfgHiJkL aBCdEfGhIjKl  AbCcDEfGhIjKl  AbCdEfGHiJkL aBcdEfGHiJKkL
  aBcdEfGhIJKl AbCdeFgHiJKL  aBcDefGghIJkL  ABcDefGhiJKl ABcDEfgHiJkL
  aBcDEeFgHiJkL  aBcDeFGhIjKl AbcDeFGhIJkL  aBbcDeFgHIJkL  aBcdEfGhIJKl
  AbCdeFghIJjKL  AbCdeFghIJkL ABcDefGhiJkL  ABcDeFfGhIjkL  AbCDeFgHiJkL
  abCDeFgHIjKl AbbCdEfGHIjKl AbcDeFgHIjKL  aBcdEfgHIjKLL  aBcdEfgHiJKL
  AbCdeFghIjKL AbCDefGhhIjKL aBCdEfGhiJkL  aBCdEFgHiJkl AbCdDEfGHiJkL
  abCdEfGHIjKl AbcDefGHiJKL  aBbcDefGhIJKL  aBcdEfgHiJKL aBCdeFghIiJKl
  ABcDeFghIjKl ABCdEfGhiJkL  abCDEfFGhIjKl  aBcDeFGhIJkL abCdEfGHiJKl
  AbcCdeFgHIJKl  AbcDefGhIJKl ABcdEfgHiJKkL AbCdEfgHiJkL  ABcDeFghIjKl
  ABcDEfGhhIjKl  AbCDeFgHiJkL aBcDeFGhIjKL  abCddEFgHIjKl  AbCdeFgHIJkL

  AbcDefGhIJkL ABbcDefGhIjKL AbCdEfgHiJkL  AbCDeFghIiJkL  aBCdEfGhIjKl
  AbCdEFgHiJkL aBcDeFfGHiJkL aBcdEfGHIjKl  AbCdeFgHIjKL aBcCdeFgHiJKL
  aBcDefGhIjKL AbCdEfgHiJkKl ABCdEfgHiJkL  aBCdEfGhIjKl AbCdEFgHhIjKl
  AbcDEfGHiJkL aBcdEfGHiJKl  AbCddEfGhIJKl  AbCdeFghIJKL aBcDefGhiJKl
  ABBcDefGhiJKl  ABcDeFgHiJkL aBcDEfGhIjJkL aBcDeFGhIjKl  AbcDeFGhIJkL
  aBcdEfFgHIJkL  aBcdEfgHIJKl AbCdeFghIJkL  ABcDdeFghIJkL  ABcDefGhiJkL
  ABcDeFgHijKkL  AbCDeFgHiJkl AbCDeFgHIjKl  AbcDeFgHHIjKl  AbcDeFgHIjKL
  aBcdEfgHIjKL AbCddEfgHiJKL AbCdeFghIjKL  AbCdEfGhiJkL AaBCdEfGhiJkL
  aBCdEFgHiJkl AbCdEFgHIjKkL abCdEfGHiJKl  AbcDefGHiJKL aBcdEffGhIJKL
  aBcdEfgHiJKL aBCdeFghIjKL  aBCcDeFghIjKl  ABcDEfGhiJkL aBCdEfGHiJkkL

  aBcDeFGhIJkL abCdEfGhIJKl  AbcDefGgHIJKl  AbcDefGhIJKl ABcdEfgHiJKl
  ABcDeEfgHiJkL  ABcDeFghIjKl ABcDEfGhiJkL  aAbCDeFgHiJkL  aBcDeFGhIjKl
  AbCdeFGhIJjKl  AbCdeFgHIJkL)
}
Chinese0956 =
後漢・後周

調元暦? 947 - 955

後周・北宋

欽天暦 956 - 963

北宋

応天暦 964 - 982

北宋

乾元暦 983 - 1000

北宋

儀天暦 1001 - 1023

北宋・西夏

崇天暦 1024 - 1064

北宋・西夏

明天暦 1065 - 1067

北宋・西夏

崇天暦 1068 - 1074

北宋・西夏

奉元暦 1075 - 1093

北宋・西夏

観天暦 1094 - 1102

北宋・西夏

占天暦 1103 - 1105

宋・西夏

紀元暦 1106 - 1135

南宋

統元暦 1136 - 1167

南宋

乾道暦 1168 - 1176

南宋

淳熙暦 1177 - 1190

南宋

会元暦 1191 - 1198

南宋

統天暦 1199 - 1207

南宋

開禧暦 1208 - 1251

南宋

淳祐暦 1252

南宋

会天暦 1253 - 1270

南宋

成天暦 1271 - 1276

南宋

本天暦 1277 - 1279

PatternTableBasedLuniSolar, {
'origin_of_MSC'=>947, 'origin_of_LSC'=>2066974,
'before' => 'Chinese0523', 'after' => 'Chinese0939', 'note' => 'Chinese',
'indices'=> ChineseIndices,
'rule_table'=> %w(
      AbCdeFggHIjKL  AbCdeFghIJkL AbCDefGhiJKl  AbCDeEfGhIjKl

  AbCDeFgHiJkL aBcDeFgHIjKl  AabCdEfGHIjKl  AbcDeFgHIjKL aBcdEfGhIiJKL
  aBcdEfgHIjKL AbCdeFghIjKL  AbCdEfGgHijKL  aBCdEfGhIjKl AbCdEFgHiJkL
  aBccDEfGHiJkL  abCdEfGHiJKl AbcDeFgHiJKLl AbCdefGHiJKL  aBcDefgHiJKL
  aBCdeFghHiJKl  ABcDeFghIjKL aBcDEfGhIjkL  aBCdEeFGhIjKl  aBcDeFGhIJkL
  abCdEfGhIJKl AbbCdeFGhIJKl AbCdefGhIJKl  ABcdEfgHiJJkL  AbCdEfgHiJkL
  ABcDeFghIjKl ABcDEfGgHijKl AbCDeFgHIjKl  aBcDeFGhIJkL abCcDeFgHIjKL
  abCdeFgHIJkL AbcDefGhIJkLL AbcDefGhIjKL  AbCdEfgHiJkL AbCDeFghIiJkL
  AbCdEFghIjKl AbCdEFgHiJkL  aBcDeEfGHiJKl  aBcdEfGHIjKL abCdeFgHIjKL
  AbbCdeFgHiJKL  aBcDefGhIjKL aBCdEfgHiJjKL aBcDEfgHiJkL  aBCdEfGhIjKl
  AbCdEfGGhIjKl  AbCdEfGHiJKl aBcdEfGHiJKl  AbCcdEfGhIJKl  AbCdeFgHiJKL

  aBcDefGhIjKLl  ABcDefGhIjKl ABcDeFgHiJkL  aBcDEfGhIiJkL  aBcDeFGhIjKl
  AbcDeFGhIJkL aBcdEeFgHIJkL aBcdEfGhIJkL  AbCdeFghIJkL ABbCdeFghIJkL
  AbCDefGhiJKl AbCDeFgHiJjKl AbCdEFgHiJkL  abCDeFgHIjKl AbcDeFfGHIjKl
  AbcDeFgHIjKL aBcdEfgHIjKL  AbCddEfgHIjKL  AbCdeFghIjKL AbCdEfGhiJkLL
  aBCdEfGhIjKl aBCdEFgHiJkL  abCdEFgHIiJkL  abCdEfGHiJkL AbcDefGHiJKL
  aBcdEefGhIJKl  ABcdEfgHiJKL aBCdeFghIjKL  aBBcDeFghIjKl  ABcDEfGhIjkL
  aBCdEfGHiJjKl  aBcDeFGhIJkL abCdeFGhIJKl  AbcDefFGhIJKl  AbcDefGhIJKl
  ABcdEfgHiJKl ABcDdEfgHiJkL ABcDeFghIjKl  ABcDeFGhIjkLl  AbCdEFgHIjKl
  aBcDeFGhIJkL abCdeFGhIIjKL abCdeFgHIJkL  AbcDefGhIjKL AbCdEefGhIjKL
  AbCdEfgHiJkL AbCDeFghIjKl  AaBCdEfGhIjKl  AbCdEFgHiJKl aBcDeFgHIjKKl

  aBcdEfGHIjKL abCdeFgHIjKL  aBcDefGgHiJKL  aBcDefGhIjKL aBCdEfgHiJkL
  aBCcDeFgHiJkL  aBCdEfGhIjKl AbCdEfGHiJkLl AbCdeFGHiJKl  aBcdEfGHiJKl
  AbCdeFgHhIJKl  AbCdeFgHiJKl ABcDefGhiJKl  ABCdEefGhiJKl  ABcDeFgHiJkL
  aBcDEfGhIjKl AbCcDeFGhIjKl AbcDeFGhIJkL  aBcdEfGhIJKkL  aBcdEfgHIJkL
  AbCdeFghIJkL ABcDefGghIJkL AbCdEfGhiJkL  AbCDeFgHiJkL aBcDdEFgHiJkL
  abCDeFgHIjKl AbcDeFgHIJkL  aAbcDeFgHIjKL  aBcdEfgHIjKL AbCdeFghIiJKL
  aBCdeFghIjKL AbCdEfGhiJkL  AbCDeFfGhIjkL  aBCdEfGHiJkL abCdEFgHIjKl
  AbbCdEfGHiJKl  AbcDefGHiJKL aBcdEfgHiJKLl ABcdEfgHiJKL  aBCdeFghIjKL
  aBCdEfGhhIjKl  ABcDEfGhiJkL aBcDEfGHiJkl  AbCdDeFGhIJkL  abCdEfGhIJKl
  AbcDefGhIJKl ABbcDefGhIJKl ABcdEfgHiJKl  ABcDeFghIiJkL  ABcDeFghIjKl

  ABcDeFGhiJkL aBcDEfFgHiJkL aBcDeFgHIJkL  abCdeFGhIJkL AbbCdeFgHIJkL
  AbcDefGhIjKL AbCdEfgHiJjKL AbCdEfgHiJkL  AbCDeFghIjKl AbCDeFgHhIjKl
  AbCdEFgHiJkL aBcDeFgHIjKL  abCddEfGHiJKL  abCdeFgHiJKL aBcDefGhIjKL
  AaBcDefGhIjKL  aBCdEfgHiJkL aBCdEfGhIiJkL aBcDEfGhIjKl  AbCdEfGHiJkL
  aBcdEeFGhIJkL  aBcdEfGHiJKl AbCdeFgHiJKL  aBcCdeFghIJKl  ABcDefGhiJKl
  ABCdEfgHijKKl  ABcDeFgHiJkL aBcDEfGhIjKl  AbcDEfGHhIjKl  AbcDeFGhIJkL
  aBcdEfGhIJKl AbCddEfgHIJkL AbCdeFghIJkL  ABcDefGhiJkL ABbCDefGhiJkL
  AbCDeFgHiJkl ABcDeFGhIjJkL abCdEFgHIjKl  AbcDeFgHIJkL aBcdEfFgHIjKL
  aBcdEfgHIjKL AbCdeFghIjKL  AbCDdeFghIjKL  aBCdEfGhiJkL AbCDeFgHijKkL
  aBCdEfGHiJkl AbCdEfGHiJKl  AbcDeFgHHiJKl  AbcDefGHiJKL aBcdEfgHiJKL

  aBCddEfgHiJKL  aBcDeFghIjKL aBCdEfGhiJkLl ABcDEfGhiJkL  aBcDEfGhIJkl
  AbCdEfGHiJJkL  abCdeFGhIJKl AbcDefGhIJKl  ABcdEffGhIJKl  ABcdEfgHiJKl
  ABcDeFghIjKl ABbCDeFghIjKl ABcDeFgHiJkL  aBcDeFGhIjKkL  aBcDeFgHIjKL
  abCdeFgHIJkL AbcDefGgHIJkL AbcDefGhiJKL  AbCdEfgHiJkL ABcDeEfgHiJkL
  AbCDeFghIjKl AbCDeFgHiJkL  aAbCdEFgHiJkL  aBcdEFgHIjKL abCdeFgHIiJKl
  AbCdeFgHiJKL aBcDefGhIjKL  AbCdEffGhIjKL  aBCdEfgHiJkL aBCdEfGhIjKl
  AbCcDEfGhIjKl  AbCdEfGHiJkL aBcdEfGHiJKkL aBcdEfGhIJKl  AbCdeFgHiJKL
  aBcDefGghIJKl  ABcDefGhiJKl ABCdEfgHijKL  aBCdEeFgHiJkL  aBcDEfGhIjKl
  AbcDEfGHiJkL aBbcDeFGhIJkL aBcdEfGhIJKl  AbCdeFghIJJkL  AbCdeFghIJkL
  ABcDefGhiJKl ABcDeFfGhiJkL AbCDeFgHijKl  ABcDeFGhIjKl aBbCdEFgHIjKl

  AbcDeFgHIJkL aBcdEfgHIJkLL aBcdEfgHIjKL  AbCdeFghIjKL AbCdEfGhhIjKL
  aBCdEfGhiJkL AbCDeFgHiJkl  AbCDdEfGHiJkl  AbCdEfGHiJKl AbcDeFgHIjKL
  aBbcDefGHiJKL  aBcdEfgHiJKL aBCdeFghIiJKL aBcDeFghIjKL  aBCdEfGhiJkL
  aBCdEFgGhiJkL  aBcDEfGhIJkl AbCdEfGHiJKl  AbcCdeFGhIJKl  AbcDefGhIJKl
  ABcdEfgHiJKLl  ABcdEfgHiJKl ABcDeFghIjKl  ABcDEfGhhIjKl  AbCDeFgHiJkL
  aBcDeFGhIjKl AbCdEeFgHIjKL abCdeFgHIJkL  AbcDefGhIJKl ABbcDefGhIjKL
  AbCdEfgHiJkL ABcDeFghIiJkL AbCDefGhIjKl  AbCDeFgHiJkL aBcDeFGgHiJkL
  aBcdEFgHIjKl AbCdeFgHIjKL  aBcDdeFgHiJKL  aBcDefGhIjKL AbCdEfgHijKLL
  aBCdEfgHijKL aBCdEfGhIjKl  AbCdEFgHhIjKl  AbCdEfGHiJkL aBcdEfGHiJKl
  AbCddEfGhIJKl  AbCdeFgHiJKL aBcDefGhiJKL  aBBcDefGhiJKl  ABCdeFgHijKL

  aBCdEFghIjjKL  aBcDeFGhIjKl aBcDEfGHiJkL  aBcdEfFGhIJkL  aBcdEfGhIJKl
  AbCdeFghIJKl ABcDdeFghIJkL ABcDefGhiJKl  ABcDeFgHijKkL  AbCDeFgHijKl
  AbCDeFGhIjKl aBcDeFGhIIjKl aBcDeFgHiJKL  aBcdEfgHIJkL AbCdeEfgHIjKL
  AbCdeFghIjKL AbCdEfGhiJkL  AaBCdEfGhiJkL  AbCDeFgHijKl AbCDeFgHIjjKl
  AbCdEfGHiJKl AbcDeFgHIjKL  aBcdEffGHiJKL  aBcdEfgHiJKL aBCdeFghIjKL
  AbCcDeFghIjKL  aBCdEfGhiJkL aBCdEfGHijKkL aBcDEfGhIJkl  )
}
Chinese1119 =
方臘

紀元暦 1118 - 1120 (歳首 建子月)

PatternTableBasedLuniSolar, {
'origin_of_MSC'=>1118, 'origin_of_LSC'=>2129431, 'border'=>'0*11-01',
'before' => 'Chinese0956', 'after' => 'Chinese0956', 'note' => 'Chinese',
'indices'=> _IndicesM11,
'rule_table'=> %w(    aBCdEfGhIiJkL aBcDEfGhIjKl  AbCdEfGHiJkL)
}
Chinese1645 =

時憲暦 1645 - 1664 天聡戊辰元法

大統暦 1665 - 1668

時憲暦 1669 - 1725 天聡戊辰元法

時憲暦 1726 - 1741 康熙甲子元法

時憲暦 1742 - 1911 雍正癸卯元法

中華民国

農暦 1912 - 1930 (北京時間 +07:45:34 で計算)

PatternTableBasedLuniSolar, {
'origin_of_MSC'=>1645, 'origin_of_LSC'=>2321912,
'before' => 'Chinese0939', 'after' => 'ChineseLuniSolar?time_basis=+08', 'note' => 'Chinese',
'indices'=> ChineseIndices,
'rule_table'=> %w(
      aBcdEffGhIJKL
  aBcdEfgHiJKL aBCdeFghIjKL  aBCdDeFghIjKl  ABcDEfGhiJkL aBCdEfGHijKl

  AbBcDeFGhIJkl  AbCdEfGHiJKl AbcDefFGhIJkL AbcDefGhIJKl  ABcdEfgHiJKl
  ABcDeEfgHiJkL  ABcDeFghIjKl ABcDEfGhiJkL  aBcCDeFgHiJkL  aBcDeFGhIjKl
  AbCdeFGgHIjKl  AbCdeFgHIJkL AbcDefGhIJkL  AbCdEffGhIjKL  AbCdEfgHiJkL
  AbCDeFghIjKl AbCDdEfGhIjKl AbCdEFgHiJkL  aBcDeFgHIjKl AbBcdEfGHIjKl
  AbCdeFgHIjKL aBcDefGgHiJKL aBcDefGhIjKL  aBCdEfgHijKL aBCDeEfgHiJkL
  aBCdEfGhIjKl AbCdEFgHiJkL  aBccDEfGHiJkL  aBcdEfGHiJKl AbCdeFgHhIJKl
  AbCdeFghIJKl ABcDefGhiJKl  ABCdEffGhiJKl  ABcDeFgHijKl ABcDEfGhIjKl
  aBCdDeFGhIjKl  aBcDeFGhIJkL aBcdEfGhIJKl  AbCcdEfgHIJkL  AbCdeFghIJkL
  ABcDefGghIjKL  AbCDefGhiJkL ABcDeFgHijKl  ABcDeEFgHiJkl  AbCDeFgHIjKl
  aBcDeFgHIJkL aBccDeFgHIjKL aBcdEfgHIjKL  AbCdeFggHiJKL  AbCdeFghIjKL

  AbCdEfGhiJkL AbCDeFfGhiJkL aBCdEFgHijKl  AbCdEFgHIjKl aBcDdEfGHiJKl
  AbcDefGHiJKL aBcdEfgHiJKL  aBCcdEfgHiJKL  aBCdeFghIjKL aBCdEfGghIjKl
  ABcDEfGhiJkL aBcDEfGhIjKl  AbCdEeFGhIJkl  AbCdEfGhIJKl AbcDefGhIJKl
  ABccDefGhIJKl  ABcdEfgHiJKl ABcDeFghHiJkL ABcDeFghIjKl  ABcDeFgHiJkL
  aBcDEfFgHiJkL  aBcDeFGhIjKl AbCdeFGhIJkL  aBcDdeFgHIJkL  aBcDefGhIJkL
  AbCdEfgHiJkL ABcCdEfgHiJkL AbCDeFghIjKl  AbCDeFgGhIjKl  AbCdEFgHiJkL
  aBcDeFgHIjKl AbCdeEfGHIjKl AbCdeFgHIjKL  aBcDefGhIjKL AbCdDefgHiJKL
  aBCdEfgHijKL aBCdEfGhIijKL aBCdEfGhIjKl  AbCdEfGHiJkL aBcdEFfGHiJkL
  aBcdEfGHiJKl AbCdeFgHiJKL  aBcDdefGhIJKl  ABcDefgHiJKl ABCdEfgHijKL
  aBCcDeFgHijKl  ABcDEfGhIjKl aBcDEfGGhIjKl aBcDeFGhIJkL  aBcdEfGhIJKl

  AbCdeEfgHIJkL  AbCdefGhIJkL ABcDefgHiJkL  ABcDdEfGhiJkL  AbCDeFgHijKl
  ABcDeFGhIijKl  AbCdEFgHIjKl aBcDeFgHIJkL  abCdEfFgHIjKL  aBcdeFgHIjKL
  AbCdefGhIjKL AbCDeefGhIjKL AbCdEfgHiJkL  AbCDeFgHijKl AbBCdEfGHijKl
  AbCdEFgHiJKl aBcDeFgGHiJKl aBcDefGHiJKL  aBcdeFgHiJKL aBCdeeFgHiJKL
  aBcDefGhIjKL aBCdEfgHiJkL  aBCcDEfgHiJkL  aBcDEfGhIjKl AbCdEfGHiJjKl
  AbCdeFGhIJkL aBcdEfGhIJKl  AbCdeFfGhIJKl  AbCdeFgHiJKl ABcDefGhIjKl
  ABCdEefGhIjKl  ABcDeFgHiJkL aBcDEfGhIjKl  AbCcDeFGhIjKl  AbCdeFGhIJkL
  aBcdEfGgHIJkL  aBcdEfGhIjKL AbCdEfghIJkL  ABcDeeFgHiJkL  AbCDefGhIjKl
  AbCDeFgHiJkL aBcDdEFgHiJkL aBcdEFgHIjKl  AbcDeFgHIJkL aBbcDeFgHiJKL
  aBcdEfgHIjKL AbCdEffgHiJKL aBCdeFghIjKL  aBCdEfGhIjkL AbCDdEfGhIjKl

  aBCdEfGHiJkL abCdEfGHIjKl  AbbCdEfGHiJKl  AbcDefGHiJKL aBcDeffGhIJKl
  ABcDefgHiJKl ABCdeFghIjKL  aBCdEeFgHijKl  ABcDEfGhIjkL aBcDEfGHiJkL
  abCcDeFGhIJkL  abCdEfGhIJKl AbCdefGhIJKl  ABbCdefGhIJkL  ABcdEfgHiJkL
  ABcDeFfgHiJkL  AbCDeFgHijKl AbCDeFGhIjkL  aBcDdEFgHIjKl  aBcDeFgHIJkL
  abCdeFgHIJkL AbCcdeFgHIjKL AbCdefGhIjKL  AbCdEfgGhIjKL  AbCdEfgHiJkL
  AbCDeFghIjKl AbCDeEfGhIjKl AbCdEFgHiJkL  aBcDeFgHIjKL abCddEfGHiJKL
  abCdeFgHiJKL aBcDefGhIiJKL aBcDefGhIjKL  aBCdEfgHiJkL aBCdEFfgHiJkL
  aBcDEfGhIjKl AbCdEfGHiJkL  aBcDdeFGhIJkL  aBcdEfGhIJKl AbCdeFgHiJKL
  aBcCdeFgHiJkL  ABcDefGhIjKl ABCdEfgGhIjKl ABcDeFgHiJkL  aBcDEfGhIjKl
  AbCdEeFgHIjKl  AbcDeFgHIJkL aBcdEfGhIJKl  AbCddEfGhIjKL  AbCdeFghIJkL

  ABcDefGhhIjKL  AbCDefGhIjkL AbCDeFgHiJkL  aBcDeFGgHiJkL  abCdEFgHIjKl
  AbcDeFgHIJkL aBcdEeFgHiJKL aBcdEfgHIjKL  AbCdeFghIjKL AbCCdeFghIjKL
  aBCdEfGhIjkL AbCdEFgHhIjkL aBCdEfGHiJkL  abCdEfGHiJKl AbcDeEfGHiJKl
  AbcDefGHiJKL aBcdEfgHiJKL  aBCddEfgHiJKl  ABCdeFghIjKl ABCdEfGhiJjKl
  ABcDEfGhIjkL aBcDEfGhIJkL  abCdEfFGhIJkL  abCdEfGhIJKl AbcDefGhIJKl
  ABcdEefGhIJkL  ABcdEfgHiJkL ABcDeFghIjKl  ABcCDeFghIjKl  AbCDeFGhIjkL
  aBcDeFGgHIjKl  aBcDeFgHIjKL abCdeFgHIJkL  AbcDeeFgHIjKL  AbcDefGhIjKL
  AbCdEfgHiJkL ABcDdEfgHiJkL AbCDeFghIjKl  AbCDeFgHiJkL aBbCdEFgHiJkL
  aBcDeFgHIjKL abCdeFfGHiJKL abCdeFgHiJKL  aBcDefGhIjKL AbCdEefGhIjKl
  ABCdEfgHiJkL aBCdEfGhIjKl  AbCcDEfGhIjKl  AbCdEfGHiJkL aBcdEfGHhIJkL

  aBcdEfGhIJKl AbCdeFgHiJKL  aBcDeeFghIJkL  ABcDefGhiJKl ABcDEfgHiJkL
  aBCdDeFgHiJkL  aBcDeFGhIjKl AbcDEfGhIJkL  aBbcDeFgHIJkL  aBcdEfGhIJKl
  AbCdeFfgHIjKL
      AbCdeFghIJkL ABcDefGhiJkL  ABcDeEfGhiJkL  AbCDeFgHiJkl
  ABcDeFGhIjKl AbbCdEFgHIjKl AbcDeFgHIjKL  aBcdEfgGHiJKL  aBcdEfgHiJKL
  AbCdeFghIjKL AbCDeeFghIjKL aBCdEfGhiJkL  aBCdEFgHiJkl AbCdDEfGHiJkL
  abCdEfGHiJKl AbcDeFgHiJKL  aBbcDefGhIJKL  aBcdEfgHiJKL aBCdeFfgHiJKl)
}
Japanese =

日本の朔閏表

PatternTableBasedLuniSolar, {
'origin_of_MSC'=>454, 'origin_of_LSC'=>1886926,
'indices'=> [
     When.Index('Japanese::Month', {:branch=>{1=>'_m:Calendar::閏'}}),
     When::Coordinates::DefaultDayIndex
 ],
'before'    => 'JapaneseTwin::平朔儀鳳暦',
'after'     => 'JapaneseTwin::旧暦',
'note'      => 'Japanese',
'rule_table'=> %w(
  aBcDeFgHiJkL aBCdEfGhIjKl
  AbCcDeFGhIjKl  AbCdEfGhIjKL aBcDeFgHiJkLl AbCDeFgHiJkL  aBcDeFGhIjKl
  AbCdEfGhIiJKl  AbCdEfGhIjKl AbCDeFgHiJkL  aBcDeEFgHiJkL  aBcDeFgHiJKl
  AbCdEfGhIjKl AaBCdEfGhIjKl AbCdEFgHiJkL  aBcDeFgHiJKkL  aBcDeFgHiJkL
  aBCdEfGhIjKl AbCdEFgGhIjKl AbCdEfGhIJkL  aBcDeFgHiJkL aBCcDeFgHiJkL
  aBcDEfGhIjKl AbCdEfGhIJkLl AbCdEfGhIjKl  ABcDeFgHiJkL aBcDEfGhIiJkL
  aBcDeFgHIjKl AbCdEfGhIjKl  ABcDeEfGhIjKl  AbCDeFgHiJkL aBcDeFgHIjKl
  AaBcDeFgHiJkL  AbCdEfGhIjKl AbCDeFgHiJjKl AbCdEfGHiJkL  aBcDeFgHiJkL
  AbCdEfGgHiJkL  aBCdEfGhIjKl AbCdEfGHiJkL  aBcDdEfGhIjKL  aBcDeFgHiJkL
  aBCdEfGhIjKlL  aBcDeFGhIjKl AbCdEfGhIjKL  aBcDeFgHhIjKl  ABcDeFgHiJkL

  aBcDeFGhIjKl AbCdEeFgHiJKl AbCdEfGhIjKl  ABcDeFgHiJkL aBbCdEFgHiJkL
  aBcDeFgHiJKl AbCdEfGhIjJkL AbCdEfGhIjKl  AbCdEFgHiJkL aBcDeFfGhIJkL
  aBcDeFgHiJkL AbCdEfGhIjKl  AbCcDEfGhIjKl  AbCdEfGhIJkL aBcDeFgHiJkLL
  aBcDeFgHiJkL aBcDEfGhIjKl  AbCdEfGhIIjKl  AbCdEfGhIjKl ABcDeFgHiJkL
  aBcDEeFgHiJkL  aBcDeFgHIjKl AbCdEfGhIjKl  ABbCdEfGhIjKl  AbCDeFgHiJkL
  aBcDeFgHIjKkL  aBcDeFgHiJkL AbCdEfGhIjKl  AbCDeFgGhIjKl  AbCdEfGHiJkL
  aBcDeFgHiJkL AbCcDeFgHiJkL aBCdEfGhIjKl  AbCdEfGHiJkLl  AbCdEfGhIjKL
  aBcDeFgHiJkL aBCdEfGhIiJkL aBcDeFGhIjKl  AbCdEfGhIjKL aBcDeEfGhIjKl
  ABcDeFgHiJkL aBcDeFGhIjKl  AaBcDeFgHiJKl  AbCdEfGhIjKl ABcDeFgHiJjKl
  AbCdEFgHiJkL aBcDeFgHiJKl  AbCdEfGgHiJkL  AbCdEfGhIjKl AbCdEFgHiJkL

  aBcDdEfGhIJkL  aBcDeFgHiJkL AbCdEfGhIjKlL aBcDEfGhIjKl  AbCdEfGhIJkL
  aBcDeFgHhIjKL  aBcDeFgHiJkL aBcDEfGhIjKl  AbCdEeFgHIjKl  AbCdEfGhIjKL
  aBcDeFgHiJkL aBbCDeFgHiJkL aBcDeFgHIjKl  AbCdEfGhIjJKl  AbCdEfGhIjKl
  AbCDeFgHiJkL aBcDeFfGHiJkL aBcDeFgHiJKl  AbCdEfGhIjKl AbCDdEfGhIjKl
  AbCdEfGHiJkL aBcDeFgHiJKlL aBcDeFgHiJkL  aBCdEfGhIjKl AbCdEfGHhIjKl
  AbCdEfGhIJkL aBcDeFgHiJkL  aBCdEeFgHiJkL  aBcDeFGhIjKl AbCdEfGhIjKL
  aBbCdEfGhIjKl  ABcDeFgHiJkL aBcDeFGhIjKkL aBcDeFgHiJKl  AbCdEfGhIjKl
  ABcDeFgGhIjKl  AbCdEFgHiJkL aBcDeFgHiJKl  AbCcDeFgHiJkL  AbCdEfGhIjKl
  AbCdEFgHiJkLl  AbCdEfGhIJkL
          aBcDeFgHiJkL AbCdEfGhIiJkL aBcDEfGhIjKl
  AbCdEfGhIJkL aBcDeEfGhIjKL aBcDeFgHiJkL  aBcDEfGhIjKl AaBcDeFgHIjKl

  AbCdEfGhIjKL aBcDeFgHiJjKl AbCDeFgHiJkL  aBcDeFgHIjKl AbCdEfGgHiJKl
  AbCdEfGhIjKl AbCDeFgHiJkL  aBcCdEfGHiJkL  aBcDeFgHiJKl AbCdEfGhIjKkL
  aBCdEfGhIjKl AbCdEfGHiJkL  aBcDeFgHhIJkL  aBcDeFgHiJkL aBCdEfGhIjKl
  AbCdEeFGhIjKl  AbCdEfGhIJkL aBcDeFgHiJkL  aBBcDeFgHiJkL  aBcDeFGhIjKl
  AbCdEfGhIJjKl  AbCdEfGhIjKl ABcDeFgHiJkL  aBcDeFGgHiJkL  aBcDeFgHIjKl
  AbCdEfGhIjKl ABcDdEfGhIjKl AbCdEFgHiJkL  aBcDeFgHIjKlL  aBcDeFgHiJkL
  AbCdEfGhIjKl AbCdEFgHhIjKl AbCdEfGHiJkL  aBcDeFgHiJkL AbCdEeFgHiJkL
  aBcDEfGhIjKl AbCdEfGHiJkL  aBbCdEfGhIjKL  aBcDeFgHiJkL aBcDEfGhIjKkL
  aBcDeFgHIjKl AbCdEfGhIjKL  aBcDeFgGhIjKl  AbCDeFgHiJkL aBcDeFgHIjKl
  AbCcDeFgHiJKl  AbCdEfGhIjKl AbCDeFgHiJkLl AbCdEfGHiJkL  aBcDeFgHiJKl

  AbCdEfGhIiJkL  aBCdEfGhIjKl AbCdEfGHiJkL  aBcDeEfGhIJkL  aBcDeFgHiJkL
  aBCdEfGhIjKl AaBcDeFGhIjKl AbCdEfGhIJkL  aBcDeFgHiJjKl  ABcDeFgHiJkL
  aBcDeFGhIjKl AbCdEfGgHIjKl AbCdEfGhIjKl  ABcDeFgHiJkL aBcCdEFgHiJkL
  aBcDeFgHIjKl AbCdEfGhIjKkL AbCdEfGhIjKl  AbCdEFgHiJkL aBcDeFgHIiJkL
  aBcDeFgHiJkL AbCdEfGhIjKl  AbCdEFfGhIjKl  AbCdEfGHiJkL aBcDeFgHiJkL
  AbBcDeFgHiJkL  aBcDEfGhIjKl AbCdEfGHiJjKl AbCdEfGhIjKL  aBcDeFgHiJkL
  aBcDEfGgHiJkL  aBcDeFGhIjKl AbCdEfGhIjKL  aBcDdEfGhIjKl  AbCDeFgHiJkL
  aBcDeFGhIjKlL  aBcDeFgHiJKl AbCdEfGhIjKl  AbCDeFgHhIjKl  AbCdEFgHiJkL
  aBcDeFgHiJKl AbCdEeFgHijKL aBCdEfGhIjKl  AbCdEFgHiJkL aBbCdEfGhIJkL
  aBcDeFgHiJKl aBcDEfgHIjKLl AbcDeFgHIjKL  aBcdEfgHIjKL AbCdeFggHiJKL

  aBCdeFghIjKL aBCdEfGhIjkL  AbCdDEfGhIjkL  aBCdEfGHiJkL abCdEfGHiJKl
  AabCdEfGHiJKl  AbcDefGHiJKL aBcdEfgHhIJKl ABcdEfgHiJKl  ABcDeFghIjKl
  ABCdEfFgHijKl  ABcDEfGhIjkL aBcDEfGhIJkL  abBcDeFGhIJkL  abCdEfGhIJKl
  AbcDefGhIJKkL  AbcDefGhIJkL ABcdEfgHiJkL  ABcDeFggHiJkL  AbCDeFghIjKl
  AbCDeFgHIjkL aBcDdEFgHIjKl aBcDeFgHIjKL  abCdeFgHIJkL AabCdeFgHIjKL
  AbcDefGHijKL AbCdEfgHiIjKL aBCdEfgHiJkL  AbCdEFghIjKl AbCDeFfGhIjKl
  AbCdEfGHiJkL aBcdEFgHIjKL  aBccdEfGHiJKl  AbCdeFgHiJKL aBcDefGhIjKKl
  ABcDefGhIjKl ABCdEfgHiJkL  aBCdEfGgHiJkL  aBcDEfGhIjKl AbCdEfGHiJkL
  aBccDeFGhIJkL  aBcdEfGhIJKl AbCdeFgHiJKL  aAbCdeFghIJkL  ABcDefGhiJKl
  ABcDEfgHiIjKl  AbCDeFgHiJkL aBcDeFGhIjKl  AbcDEeFgHIjKl  AbcDeFgHIJkL

  aBcdEfGhIJkL AbCcdEfgHIjKL AbCdeFghIJkL  ABcDefGhiJjKL  AbCdEfGhiJkL
  AbCDeFgHiJkL aBcDeFGhHiJkL abCdEFgHIjKl  AbcDeFgHIjKL aBcdDefGHiJKL
  aBcdEfGhIjKl ABCdeFghIjKLl ABCdeFghIjKL  aBCdEfGhiJkL aBCdEFgHiJjkL
  aBCdEfGHiJkL abCdEfGHiJKl  AbcDeFfGhIJKl  AbcDefGhIJKL aBcdEfgHiJKL
  aBCcdEfgHiJKl  ABcDeFghIjKL aBcDEfGhIjkKL aBcDeFGhIjkL  aBcDEfGHiJkL
  abCdEfGHhIJkL  aBcdEfgHIJkL AbCDefghIJKl  ABcDeefGhIJKL  aBcdEfgHiJKL
  aBcDeFghIjKl AAbCDeFghIjKl ABcDeFGhIjkL  aBcDeFGhIiJKl  aBcDeFgHIJkL
  abCdEfgHIjKL AbCdeeFgHiJKL aBcDefGhIjKL  AbCdEfgHiJkL ABcCdEfGhiJkL
  aBCDeFghIjKl ABcdEFgHIjKkl AbCdEfGHiJkL  aBcdEfGHiJKL abCdeFgGHiJKL
  abCdeFgHiJKL aBcDefGhIjKL  AbCdEefGhiJKL  aBCdEfgHiJkL aBCdEfGhIjKl

  AaBcDeFGhIjKl  AbcDEfGHiJkL aBcdEfGHiJJkL aBcdEfGhIJKl  AbCdeFghIJKL
  aBcDefFghIJKL  aBcDefGhIjKl ABcDEfgHijKL  aBbCDeFgHiJkL  aBcDeFGhIJkl
  AbcDeFGhIJkLl  AbcDeFgHIJkL aBcdEfGhIJkL  AbCdeFggHIjKL  AbCdeFghIjKL
  AbCDefGhiJKl AbCDdEfGhIjkL AbCDeFgHiJkL  aBcDeFgHIjKl AAbcdEFgHIjKl
  AbcDeFgHIjKL AbcdEfgHIiJKL aBcdEfgHIjKL  aBCdeFghIjKL AbCdEfGghIjKl
  ABCdEfGhiJkL aBCdEfGHiJkL  AbccDEfGHiJkL  abCdEfGHiJKl AbcDEfgHiJKLl
  AbcDefGHiJKL AbcdEfgHiJKL  aBCdeFggHiJKl  ABcDeFghIjKL aBcDEfGhiJkL
  aBcDEeFGhIjkL  aBcDeFGhIJkL abCdEfGHiJKl  AabCdeFGhIJKl  AbcDefGhIJKl
  ABcdEfgHiIJkL  ABcdEfgHiJKl ABcDeFghIjKl  ABcDEfGgHijKl  AbCDeFgHIjKl
  aBcDeFGhIJkL abCcDeFgHIJkL abCdeFgHIJkL  AbcDefGhIJkLL  AbcDefGhIjKL

  AbCdEfgHiJkL AbCDeFghHiJkL aBCdEFghIjKl  AbCdEFgHiJKL abcDdEfGHiJKl
  aBcdEfGHIjKL abCdeFgHIjKL  AbbCdeFgHiJKL  aBcDefGhIjKL AbCdEfgHiJJkL
  aBCdEfgHiJkL AbCdEFgHijKl  AbCDeFfGhIJkl  AbCdEfGHiJKl AbcDeFgHIjKL
  aBccdEfGHiJKL  aBcdeFgHiJKL aBCdefGhIjKLl ABcDeFghIjKL  aBCdEfGhiJkL
  aBCdEfGhHiJkL  aBcDEfGhIjKL abCdEfGHiJKL  abcDdeFGhIJkL  AbcdEfGhIJKl
  ABcdeFgHiJKl ABbCdeFgHiJkL ABcDefGhIjKl  ABcDEfgHiJjKl  AbCDeFgHiJkL
  aBcDeFGhIjKl AbCdEfGgHIjKl AbCdeFgHIJkL  aBcdEfGhIJkL AbCcDefGhIjKL
  AbCdEfghIJkL ABcDefGhIjKkL AbCdEfGhIjKl  AbCdEFgHiJkL aBcDeFgHIiJkl
  ABcdEfGHIjKL abCdeFgHIjKL  aBcDeeFgHiJKL  aBcdEfgHIjKL AbCdEfghIjKL
  AaBCdeFgHijKL  aBCdEfGhIjKl AbCdEFgHiJjKl AbCdEfGHiJkL  abCdEfGHiJKl

  AbCdeFfGhIJKl  AbCdefGHiJKL aBcDefgHiJKL  aBCcDefgHiJKl  ABcDeFgHijKL
  aBcDEfGhIjkLl  ABcDeFGhIjKl aBcDeFGhIJkL  abCdEfGhHIJkL  aBcdEfGhIJKl
  AbCdefGhIJKl ABcDeefGhIJkL ABcdEfgHiJkL  ABcDeFgHijKl ABbCDeFgHijKl
  AbCDeFgHIjKl aBcDeFGhIJjKl aBcDeFgHIjKL  aBcdeFgHIJkL AbCdefFgHIjKL
  AbCdefGhIjKL AbCdEfgHiJkL  AbCDdEfgHiJkL  aBCdEFghIjKl AbCdEFgHiJKll
  AbCdEfGHiJKl aBcDefGHIjKL  aBcdeFgHHiJKL  aBcdeFgHiJKL aBcDefGhIjKL
  aBCdEefGhIjKl  ABCdEfgHiJkL aBCdEfGhIjKl  AaBcDEfGhIjKl  AbCdEfGHiJkL
  aBcdEfGHiJKkl  ABcdEfGhIJkl ABCdeFgHiJKl  ABcDefGgHiJkL  ABcDefGhIjKl
  ABcDEfgHiJkL aBcCDeFgHijKL aBcDeFGhIjKl  AbCdeFGhIJkLl  AbcDeFgHIJkL
  aBcdEfGhIJkL AbCdeFggHIjKL AbCdeFghIJkL  AbCDefGhiJKl AbCDeEfGhIjKl

  AbCDeFgHiJkL aBcDeFgHIjKl  AabCdEfGHIjKl  AbcDeFgHIjKL aBcdEfgHIiJKL
  aBcdEfgHIjKL AbCdeFghIjKL  AbCdEfGghIjKL  aBCdEfGhIjkL AbCdEFgHiJkL
  abCcDEfGHiJkL  abCdEfGHiJKl AbcDeFgHiJKLl AbcDefGhIJKl  ABcdEfgHiJKL
  aBCdeFghHiJKl  ABcDeFghIjKL aBcDEfGhIjkL  aBCdEeFGhIjKl  aBcDeFGhIJkL
  abCdEfGhIJKl AbbCdeFGhIJKl AbcDefGhIJKl  ABcdEfgHiJJkL  AbCdEfghIJkL
  ABcDeFghIjKl ABcDEfGghIjKl AbCDeFgHIjKl  aBcDeFGhIJkL abCcDeFgHIjKL
  abCdeFgHIJkL AbcDefGhIJkLL aBcDefGhIjKL  AbCdEfgHiJkL AbCDeFghHiJkL
  aBCdEfGhIjKl AbCdEFgHiJkL  aBcDeEfGHiJKl  aBcdEfGHIjKL abCdeFgHIjKL
  AbbCdeFgHiJKL  aBcDefGhIjKL aBCdEfgHiJjKl ABcDeFgHiJkL  aBCdEfGhIjKl
  AbCdEfGGhIjKl  AbcDeFGHiJkL aBcdEfGHiJKl  AbCcdEfGhIJKl  AbCdeFgHiJKl

  ABcDefGhiJKLl  ABcDefGhiJKl ABcDeFgHiJkL  aBcDEfGhIiJkL  aBcDeFGhIjKl
  AbcDeFGhIJkL aBcdEeFgHIJkL aBcdEfGhIJkL  AbCdeFghIJkL ABbCdeFghIJkL
  AbCDefGhiJKl AbCDeFgHiJjKl AbCdEFgHiJkL  abCDeFgHIjKl AbcDeFfGHIjKl
  AbcDeFgHIjKL aBcdEfgHIjKL  AbCddEfgHIjKL  AbCdeFghIjKL AbCdEfGhiJkLL
  aBCdEfGhIjkL AbCdEFgHiJkL  abCdEFgHIiJkL  abCdEfGHiJKl AbcDeFgHiJKL
  aBcdEefGHiJKL  aBcdEfgHiJKL aBCdeFghIjKL  aBBcDeFghIjKL  aBcDEfGhIjkL
  aBCdEfGHiJjKl  aBcDeFGhIJkL abCdEfGhIJKl  AbcDefFGhIJKl  AbcDefGhIJKl
  ABcdEfgHiJKl ABCddEfgHiJkL ABcDeFghIjKl  ABcDeFGhiJkLl  AbCDeFgHIjKl
  aBcDeFGhIjKL abCdEfGhIIjKL abCdeFgHIJkL  AbcDefGhIJkL AbCdEefGhIjKL
  AbCdEfgHiJkL AbCDeFghIjKl  AaBCdEfGhIjKl  AbCdEFgHiJkL aBcDeFgHIjjKL

  aBcdEfGHIjKL abCdeFgHIjKL  aBcDefGgHiJKL  aBcDefGhIjKL aBCdEfgHiJkL
  aBCcDEfgHiJkL  aBCdEfGhIjKl AbCdEfGHiJkLl AbCdEfGHiJkL  aBcdEfGHiJKl
  AbCdeFgHhIJKl  AbCdeFgHiJKl ABcDefGhIjKl  ABCdEefGhiJKl  ABcDeFgHiJkL
  aBcDEfGhIjKl AaBcDeFGhIjKl AbcDeFGhIJkL  aBcdEfGhIJjKL  aBcdEfGhIJkL
  AbCdeFghIJkL ABcDefGghIJkL AbCDefGhiJKl  AbCDeFgHiJkL aBcDdEFgHiJkL
  abCDeFgHIjKl AbcDeFgHIJkLl AbcDeFgHIjKL  aBcdEfgHIjKL AbCdeFghHiJKL
  aBCdeFghIjKL AbCDefGhiJkL  AbCDeFfGhIjkL  aBCdEfGHiJkL abCdEFgHIjKl
  AbbCdEfGHiJKl  AbcDefGHiJKL aBcdEfgHiJJKl ABcdEfgHiJKL  aBCdeFghIjKL
  aBCdEfGghIjKl  ABcDEfGhiJkL aBcDEfGhIJkl  AbCcDeFGhIJkl  AbCdEfGhIJKl
  AbcDefGhIJKl AAbcDefGhIJKl ABcdEfgHiJKl  ABcDeFghIiJkL  ABcDeFghIjKl

  ABcDeFGhiJkL aBcDEeFgHiJkL aBcDeFGhIjKL  abCdeFGhIJkL AbbCdeFgHIJkL
  AbcDefGhIJkL AbCdEfgHiJjKL AbCdEfgHiJkL  AbCDeFghIjKl AbCDeFgGhIjKl
  AbCdEFgHiJkL aBcDeFgHIjKL  abCcdEfGHIjKL  abCdeFgHiJKL aBcDefGhIjKL
  AaBcDefGhIjKL  aBCdEfgHiJkL aBCdEfGhIiJkL aBcDEfGhIjKl  AbCdEfGHiJkL
  aBcdEeFGHiJkL  aBcdEfGHiJKl AbCdeFgHiJKL  aBbCdeFghIJKl  ABcDefGhiJKl
  ABCdEfgHijJKl  ABcDeFgHiJkL aBcDEfGhIjKl  AbCdEfGgHIjKl  AbcDeFGhIJkL
  aBcdEfGhIJKl AbCddEfgHIJkL AbCdeFghIJkL  ABcDefGhiJKlL  AbCdEfGhiJkL
  AbCDeFgHiJkl ABcDeFGhIiJkl AbCdEFgHIjKl  AbcDeFgHIJkL aBcdEeFgHIjKL
  aBcdEfgHIjKL AbCdeFghIjKL  AbBCdeFghIjKL  aBCdEfGhiJkL AbCDeFgHijJkL
  aBCdEfGHiJkl AbCdEFgHiJKl  AbcDeFfGHiJKl  AbcDefGHiJKL aBcdEfgHiJKL

  aBCddEfgHiJKL  aBcDeFghIjKL aBCdEfGhiJkLl ABcDEfGhiJkL  aBcDEfGhIJkl
  AbCdEfGHiIjKl  AbCdEfGhIJKl AbcDefGhIJKl  ABcdEefGhIJKl  ABcdEfgHiJKl
  ABcDeFghIjKl ABbCDeFghIjKl ABcDeFgHiJkL  aBcDeFGhIjjKL  aBcDeFgHIjKL
  abCdeFGhIJkL AbcDefGgHIJkL AbcDefGhIjKL  AbCdEfgHiJkL ABcDdEfgHiJkL
  AbCDefGhIjKl AbCDeFgHiJkLl AbCdEFgHiJkL  aBcDeFgHIjKl AbCdeFgHIiJKl
  AbCdeFgHiJKL aBcDefGhIjKL  AbCdEffGhIjKL  aBCdEfgHiJkL aBCdEfGhIjKl
  AbBcDEfGhIjKl  AbCdEfGHiJkL aBcdEfGHiJjKL aBcdEfGHiJKl  AbCdeFgHiJKL
  aBcDefGghIJKl  ABcDefgHiJKl ABCdeFgHijKL  aBCdDeFgHiJkL  aBcDEfGhIjKl
  AbcDEfGHiJkLl  AbcDeFGhIJkL aBcdEfGhIJKl  AbCdeFghHIJkL  AbCdefGhIJkL
  ABcDefGhiJKl ABcDeFfGhiJkL AbCDeFgHijKl  ABcDeFGhIjKl aBbCdEFgHIjKl

  AbcDeFgHIJkL aBcdEfgHIJjKL aBcdeFgHIjKL  AbCdefGhIjKL AbCDefGghIjKL
  aBCdEfGhiJkL AbCDeFgHijKl  AbCDdEfGHiJkl  AbCdEfGHiJKl AbcDeFgHIjKL
  aAbcDefGHiJKL  aBcdeFgHiJKL aBCdeFghIiJKL aBcDeFghIjKL  aBCdEfGhiJkL
  aBCdEFfGhiJkL  aBcDEfGhIJkl AbCdEfGHiJKl  AbbCdeFGhIJKl  AbcDefGhIJKl
  ABcdEfgHiJjKL  AbCdEfgHiJKl ABcDeFghIjKl  ABcDEfGghIjKl  ABcDeFgHiJkL
  aBcDeFGhIjKl AbCcDeFgHIjKl AbCdeFgHIJkL  AbcDefGhIJKl AaBcDefGhIjKL
  AbCdEfgHiJkL ABcDeFghIiJkL AbCDefGhIjKl  AbCDeFgHiJkL aBcDeFFgHiJkL
  aBcdEFgHIjKl AbCdeFgHIjKL  aBbCdeFgHiJKL  aBcDefGhIjKL AbCdEfghIjJKL
  aBCdeFgHijKL aBCdEfGhIjKl  AbCdEFggHIjKl  AbCdEfGHiJkL aBcdEfGHiJKl
  AbCddEfGhIJKl  AbCdeFgHiJKL aBcDefgHiJKLl ABcDefgHiJKl  ABcDeFgHijKL

  aBCdEfGhIijKL  aBcDeFGhIjKl aBcDEfGhIJkL  aBcdEeFGhIJkL  aBcdEfGhIJKl
  AbCdefGhIJKl ABcCdefGhIJkL ABcDefgHiJKl  ABcDeFgHijjKL  AbCDeFgHijKl
  ABcDeFGhIjKl aBcDeFGgHIjKl aBcDeFgHIJkL  aBcdEfgHIJkL AbCddeFgHIjKL
  AbCdefGhIjKL AbCdEfgHiJkL  AaBCdEfGhiJkL  AbCdEFgHijKl AbCDeFgHIijKl
  AbCdEfGHiJKl aBcDeFgHIjKL  aBcdeEfGHiJKL  aBcdeFgHiJKL aBCdefGhIjKL
  AbCcDefGhIjKL  aBCdEfGhiJkL aBCdEfGhIjjKL aBcDEfGhIjKl  AbCdEfGHiJKl
  aBcDefGGhIJKl  AbcdEfGhIJKl ABcdeFgHiJKL  aBcDdeFgHiJKl  ABcDefGhIjKl
  ABcDEfgHiJkLl  AbCDeFgHiJkL aBcDeFGhIjKl  AbCdEfGhIJjKl  AbCdeFgHIJkL
  AbcdEfGhIJKl AbCdeFfGhIjKL AbCdEfghIJkL  ABcDefGhIjKl ABbCdEfGhIjKl
  AbCDeFgHiJkL aBcDeFGhIjjKL aBcdEFgHIjKl  AbcDeFgHIjKL aBcDefGgHiJKL

  aBcDefgHIjKL AbCdEfghIjKL  AbCDdeFgHijKL  aBCdEfGhIjKl AbCdEFgHiJkLl
  AbCdEfGHiJkL abCdEfGHiJKl  AbcDeFgHhIjKL  AbCdefGHiJKL aBcDefgHiJKL
  aBCdeFfgHiJKl  ABcDeFgHijKL aBCdEfGhIjkL  aBCcDeFGhIjKl  aBcDeFGhIJkL
  abCdEfGHijjKL  AbCdEfGhIJKl AbCdefGhIJKl  ABcDefgGhIJkL  ABcdEfgHiJKl
  ABcDeFghIjKl ABcDEeFgHijKl AbCDeFgHIjKl  aBcDeFGhIJkL aaBcDeFgHIjKL
  aBcdeFgHIJkL AbCdefGhIIjKL AbCdefGhIjKL  AbCdEfgHiJkL AbCDeFfgHiJkL
  AbCdEFgHijKl AbCdEFgHiJKl  aBbCdEfGHiJKl  aBcDeFgHIjKL aBcdeFgHIjjKL
  AbCdeFgHiJKL aBcDefGhIjKL  AbCdEfggHIjKL  aBCdEfgHiJkL aBCdEfGhIjKl
  AbCdDEfGhIjKl  AbCdEfGHiJKl aBcdEfGHiJKl  ABbcdEfGhIJKl  AbCdeFgHiJKL
  aBcDefGhIiJKl  ABcDefGhIjKl ABcDEfgHiJkL  aBcDEfFgHiJkL  aBcDeFGhIjKl

  AbCdeFGhIJkL aBbcDeFgHIJkL aBcdEfGhIJKl  AbCdeFghIJjKL  AbCdeFghIJkL
  ABcDefGhiJKl ABcDeFggHIjKl AbCDeFgHiJkL  aBcDeFgHIjKl AbcDdEFgHIjKl
  AbcDeFgHIjKL aBcdEfGhIjKL  AaBcdEfgHIjKL  AbCdeFghIjKL AbCDefGhiIjKL
  aBCdEfGhIjkL AbCdEFgHiJkL  abCdEFfGHiJkL  abCdEfGHiJKl AbcDeFgHiJKL
  aBccDefGHiJKL  aBcdEfgHiJKL aBCdeFghIjjKL AbCDeFghIjKL  aBCdEfGhIjkL
  aBCdEfGgHIjKl  aBcDeFGhIJkL abCdEfGHiJKl  AbcDdeFGhIJKl  AbcDefGhIJKl
  ABcdEfgHiJKl AAbCdEfgHiJkL ABcDeFghIjKl  ABcDEfGhIijKl  AbCDeFgHIjKl
  aBcDeFGhIJkL abCdEeFgHIjKL abCdeFgHIJkL  AbCdefGhIJkL ABccDefGhIjKL
  AbCdEfgHiJkL AbCDeFghIjjKL aBCdEfGhIjKl  AbCdEFgHiJkL aBcDeFggHIJkL
  aBcDefGHIjKL abCdeFgHIjKL  AbcDdeFgHiJKL  aBcDefGhIjKL aBCdEfgHiJkL

  AaBCdEfgHiJkL  aBCdEfGhIjKl AbCdEFgHiJjKl AbCdEfGHiJkL  aBcdEfGHiJKl
  AbCdeFfGhIJKl  AbCdeFgHiJKL aBcDefGhIjKL  aBCcDefGhIjKl  ABcDeFgHiJkL
  aBcDEfGhIjjKL  aBcDeFGhIjKl AbcDeFGhIJkL  aBcdEfGgHIJkL  aBcdEfGhIJKl
  AbCdeFghIJkL ABcDeeFghIJkL AbCDefGhiJKl  ABcDeFgHiJkL aAbCdEFgHiJkL
  aBcDeFgHIjKl AbcDeFgHIJjKl AbcDeFgHIjKL  aBcdEfgHIjKL AbCdeFfgHIjKL
  AbCdeFghIjKL AbCdEfGhiJkL  AbCCdEfGhIjkL  AbCdEFgHiJkL abCdEFgHIjKkL
  abCdEfGHiJKl AbcDeFgHiJKL  aBcdEfgGhIJKl  ABcdEfgHiJKL aBCdeFghIjKL
  aBCdEeFghIjKL  aBcDEfGhIjkL aBCdEfGHiJkL  aaBcDeFGhIJkL  abCdEfGhIJKl
  AbcDefGHiIjKL  AbcDefGhIJKl ABcdEfgHiJKl  ABcDeFfgHiJkL  ABcDeFghIjKl
  ABcDEfGhiJkL aBbCDeFgHIjKl aBcDeFGhIJkL  abCdEfGhIjjKL  AbCdeFgHIJkL

  AbcDefGhIJkL ABcdEfgHhIjKL AbCdEfgHiJkL  AbCDeFghIjKl AbCDdEfGhIjKl
  AbCdEFgHiJkL aBcDeFgHIjKL  aaBcdEfGHIjKL  abCdeFgHIjKL AbcDefGhIiJKL
  aBcDefGhIjKL aBCdEfgHiJkL  aBCDeFfgHiJkL  aBCdEfGhIjKl AbCdEfGHiJkL
  aBbCdEfGHiJkL  aBcdEfGHiJKl AbCdeFgHiJjKL AbCdeFgHiJKL  aBcDefGhiJKl
  ABCdEfgHhiJKl  ABcDeFgHiJkL aBcDEFghIjKl  AbCdEeFGhIjKl  AbcDeFGhIJkL
  aBcdEfGhIJKl AaBcdEfGhIJkL AbCdeFghIJkL  ABcDefGhiIjKL  AbCDefGhiJKl
  AbCDeFgHiJkL aBcDeFGgHiJkL abCDeFgHIjKl  AbcDeFgHIJkL aBccDeFgHIjKL
  aBcdEfgHIjKL AbCdeFghIJkKL AbCdeFghIjKL  AbCdEfGhiJkL AbCDeFgHhIjkL
  AbCdEFgHiJkL abCdEFgHIjKl  AbcDdEfGHiJKl  AbcDefGHiJKL aBcdEfgHiJKL
  AbBcdEfgHiJKL  aBCdeFghIjKL aBCdEfGhiJjKl ABcDEfGhiJkL  aBCdEfGHiJkl

  AbCdEfFGhIJkL  abCdEfGhIJKl AbcDefGHiJKL  aBccDefGhIJKl  ABcdEfgHiJKl
  ABcDeFghIjKkL  ABcDeFghIjKl ABcDeFGhiJkL  aBcDEfGhHiJkL  aBcDeFGhIjKL
  abCdeFGhIJkL AbcDdeFgHIJkL AbcDefGhIJkL  AbCdEfgHiJkL ABbCdEfgHiJkL
  AbCDeFghIjKl AbCDeFgHiJjKl AbCdEFgHiJkL  aBcDeFgHIjKL abCdeFfGHIjKL
  abCdeFgHIjKL aBcDefGhIjKL  AbCcDefGhIjKL  aBCdEfgHiJkL aBCdEfGhIjKkL
  aBCdEfGhIjKl AbCdEfGHiJkL  aBcdEFgHIiJkL  aBcdEfGHiJKl AbCdeFgHiJKL
  aBcDeeFgHiJKl  ABcDefGhiJKl ABCdEfgHijKL  aABcDeFgHiJkL  aBcDEfGhIjKl
  AbCdEfGHiJjKl  AbcDeFGhIJkL aBcdEfGhIJKl  AbCdeFfGhIJkL  AbCdeFghIJkL
  ABcDefGhiJKl ABcCdEfGhiJKl AbCDeFgHiJkl  ABcDeFGhIjKkL  abCdEFgHIjKl
  AbcDeFgHIJkL aBcdEfGgHIjKL aBcdEfgHIjKL  AbCdeFghIjKL AbCDeeFghIjKL

  AbCdEfGhiJkL AbCDeFgHijKl  AaBCdEfGHiJkl  AbCdEFgHIjKl AbcDeFgHIjjKL
  AbcDefGHiJKL aBcdEfgHiJKL  AbCdeFfgHiJKL  aBcDeFghIjKL aBCdEfGhiJkL
  aBCcDEfGhiJkL  aBcDEfGhIJkl AbCdEfGHiJKlL abCdEfGhIJKl  AbcDefGhIJKL
  aBcdEfgHhIJKl  ABcdEfgHiJKl ABcDeFghIjKl  ABCdEeFghIjKl  ABcDeFgHiJkL
  aBcDEfGhIjKl AaBcDeFGhIjKL abCdeFGhIJkL  AbcDefGhIJKkL  AbcDefGhIJkL
  AbCdEfgHiJkL ABcDeFggHiJkL AbCDeFghIjKl  AbCDeFgHiJkL aBcCdEFgHiJkL
  aBcDeFgHIjKl AbCdeFgHIJkL  AabCdeFgHIjKL  aBcDefGhIjKL AbCdEfgHhIjKL
  aBCdEfgHiJkL aBCdEfGhIjKl  AbCdEEfGhIjKl  AbCdEfGHiJkL aBcdEfGHIjKl
  AaBcdEfGHiJKl  AbCdeFgHiJKL aBcDefGhiIJKl ABcDefGhiJKl  ABCdeFgHijKL
  aBCdEfGgHiJkL  aBcDEfGhIjKl AbCdEfGHiJkL  aBccDeFGhIJkL  aBcdEfGhIJKl

  AbCdeFghIJKkL  AbCdefGhIJkL ABcDefGhiJKl  ABcDeFgHhiJkL  AbCDeFgHijKl
  ABcDeFGhIjKl aBcDdEFgHIjKl AbcDeFgHIJkL  aBcdEfGhIJkL AbBcdeFgHIjKL
  AbCdefGhIjKL AbCDefGhiJjKL AbCdEfGhiJkL  AbCDeFgHijKl AbCDeFfGHiJkl
  AbCdEFgHiJKl AbcDeFgHIjKL  aBccDefGHiJKL  aBcdeFgHiJKL aBCdeFghIjKLL
  aBcDeFghIjKL aBCdEfGhiJkL  aBCdEFgHhiJkL  aBcDEfGhIJkl AbCdEfGHiJKl
  AbcDdeFGhIJKl  AbcDefGhIJKl ABcdEfgHiJKL  aBbCdEfgHiJKl  ABcDeFghIjKl
  ABCdEfGhiJjKl  ABcDeFgHiJkL aBcDeFGhIjKl  AbCdEfGgHIjKL  abCdeFGhIJkL
  AbcDefGhIJKl ABccDefGhIJkL AbCdEfgHiJkL  ABcDeFghIjKkL  AbCDefGhIjKl
  AbCDeFgHiJkL aBcDeFGhIiJkL aBcdEFgHIjKl  AbCdeFgHIJkL aBcDeeFgHIjKL
  aBcDefGhIjKL AbCdEfghIJkL  AaBCdeFgHiJkL  aBCdEfGhIjKl AbCdEFgHiJjKl

  AbCdEfGHiJkL aBcdEfGHiJKl  AbCdeFfGHiJKl  AbCdeFgHiJKL aBcDefgHiJKL
  aBCdDefgHiJKl  ABCdeFgHijKL aBCdEfGhIjkLL aBcDEfGhIjKl  AbcDEfGHiJkL
  aBcdEfGHhIJkL  aBcdEfGhIJKl AbCdefGhIJKl  ABcDeefGhIJkL  ABcDefgHiJKl
  ABcDeFgHijKl ABbCDeFgHijKl ABcDeFGhIjKl  aBcDeFGhIJjKl  aBcDeFgHIJkL
  aBcdEfgHIJkL AbCdefFgHIjKL AbCdefGhIjKL  AbCdEfgHiJkL AbCDdEfGhiJkL
  AbCDeFgHijKl AbCDeFgHIjKll AbCdEfGHiJKl  aBcDeFgHIjKL aBcdeFgHHiJKL
  aBcdeFgHiJKL aBCdefGhIjKL  AbCdEefGhIjKL  aBCdEfGhiJkL aBcDEfGhIjKl
  AbCcDeFGhIjKl  AbcDeFGhIJkL aBcdEfGhIJKl  AaBcdEfGhIJKl  AbCdeFghIJkL
  ABcDefGhhIJkL  AbCDefGhiJkL ABcDeFgHijKl  ABcDEeFgHiJkl  AbCDeFgHIjKl
  AbcDeFGhIJkL aBbcDeFgHIjKL aBcdEfgHIjKL  AbCdeFghIiJKL  AbCdeFghIjKL

  AbCdEfGhiJkL AbCDeFgHhiJkL aBCdEFgHiJkl  AbCdEFgHIjKl AbcDdEfGHiJKl
  AbcDefGHiJKL aBcdEfgHiJKL  AaBcdEfgHiJKL  aBCdeFghIjKL aBCdEfGhhIjKl
  ABCdEfGhiJkL aBCdEfGHiJkl  AbCdEeFGhIJkL  abCdEfGHiJKl AbcDefGHiJKL
  aBbcDefGhIJKl  ABcdEfgHiJKl ABcDeFghIjJkL ABcDeFghIjKl  ABcDEfGhiJkL
  aBcDEfGgHiJkL  aBcDeFGhIjKl AbCdeFGhIJkL  AbcDdeFgHIJkL  AbcDefGhIJkL
  AbCdEfgHiJkL AAbCdEfgHiJkL AbCDeFghIjKl  AbCDeFgHiIjKl  AbCdEFgHiJkL
  aBcDeFgHIjKl AbCdeEfGHIjKl AbCdeFgHIjKL  aBcDefGhIjKL AbCcDefGhIjKL
  aBCdEfgHijKL aBCDeFghIjKkL aBCdEfGhIjKl  AbCdEFgHiJkL aBcdEFgGHiJkL
  aBcdEfGHiJKl AbCdeFgHiJKL  aBcDdeFghIJKL  aBcDefGhiJKl ABCdEfgHijKLl
  ABcDeFgHijKL aBcDEfGhIjKl  aBCdEfGHiJjKl  AbcDeFGhIJkL aBcdEfGhIJKl

  AbCdeFfGhIJkL  AbCdeFghIJkL ABcDefGhiJKl  ABbCDefGhiJkL  ABcDeFgHijKl
  ABcDeFGhIjKkl  AbCDeFgHIjKl AbcDeFgHIJkL  aBcdEfGgHIjKL  aBcdEfgHIjKL
  AbCdeFghIjKL ABcDdeFghIjKL AbCdEfGhiJkL  AbCDeFgHijKlL  aBCdEFgHiJkl
  AbCdEFgHIjKl aBcDeFgHIiJKl AbcDefGHiJKL  aBcdEfgHiJKL AbCdeFfgHiJKL
  aBcDeFghIjKL aBCdEfGhiJkL  aBCcDEfGhiJkL  aBCdEfGhIjKl AbCdEfGHiJKll
  AbCdEfGhIJKl AbcDefGhIJKl  ABcdEfgGhIJKl  ABcdEfgHiJKl ABcDeFghIjKl
  ABCdEeFghIjKl  ABcDeFgHiJkL aBcDEfGhIjKl  AaBcDeFGhIjKl  AbCdeFGhIJkL
  aBcDefGhIJJkL  AbcDefGhIJkL AbCdEfgHiJkL  ABcDeFfgHiJkL  AbCDeFghIjKl
  AbCDeFgHiJkL aBbCdEFgHiJkL aBcDeFgHIjKl  AbCdeFgHIJkKl  AbCdeFgHIjKL
  aBcDefGhIjKL AbCdEfggHiJKL aBCdEfgHijKL  aBCDefGhIjkL AbCDdEfGhIjKl

  AbCdEfGHiJkL aBcdEfGHIjKl  AaBcdEfGHiJKl  AbCdeFgHiJKL aBcDefgHhIJKl
  ABcDefgHiJKl ABCdEfgHijKL  aBCdEfFgHijKl  ABcDEfGhIjKl aBcDEfGHiJkL
  abBcDeFGhIJkL  aBcdEfGhIJKl AbCdefGhIJKkL AbCdefGhIJkL  ABcDefgHiJkL
  ABcDeFgHhiJkL  AbCDeFgHijKl ABcDeFGhIjkL  aBcDdEFgHIjKl  aBcDeFgHIJkL
  aBcdEfGhIJkL AaBcdeFgHIjKL AbCdefGhIjKL  ABcdEfgHhIjKL  AbCdEfGhiJkL
  AbCDeFgHijKl AbCDeFfGHijKl AbCdEFgHiJKl  aBcDeFgHIjKL abCcDefGHiJKL
  aBcdeFgHiJKL AbCdefGhIjKKL aBcDefGhIjKL  aBCdEfgHiJkL aBCdEFggHiJkL
  aBcDEfGhIjKl AbCdEfGHiJkL  aBcDdeFGhIJkL  aBcdEfGhIJKl ABcdeFgHiJKL
  aAbCdeFgHiJKl  ABcDefGhIjKl ABCdEfgHiIjKl ABcDeFgHiJkL  aBcDEfGhIjKl
  AbCdEeFGhIjKl  AbCdeFGhIJkL aBcdEfGhIJKl  AbCddEfGhIJkL  AbCdeFgHiJkL

  ABcDefGhIjKl ABbCDefGhIjKl AbCDeFgHiJkL  aBcDeFGgHiJkL  aBcdEFgHIjKl
  AbcDeFgHIJkL aBcdEeFgHIjKL aBcdEfgHIjKL  AbCdeFghIjKL AbCCdeFghIjKL
  aBCdEfGhIjkL AbCDeFgHhIjKl aBCdEfGHiJkL  abCdEfGHIjKl AbcDeEfGHiJKl
  AbCdefGHiJKL aBcDefgHiJKL  aBCddEfgHiJKl  ABCdeFghIjKL aBCdEfGhIjjKl
  ABcDEfGhIjkL aBcDEfGHiJkL
          abCdEfFGhIJkL  abCdEfGhIJKl AbCdefGhIJKl
  ABcDeefGhIJkL  ABcdEfgHiJkL ABcDeFghIjKl  ABcCDeFgHijKl  ABcDeFGhIjkL
  aBcDeFGgHIjKl  aBcDeFgHIJkL abCdEfgHIJkL  AbCdeeFgHIjKL  AbCdefGhIjKL
  AbCdEfgHiJkL ABcDdEfgHiJkL AbCDeFghIjKl  AbCDeFgHiJkLl  AbCdEFgHiJKl
  aBcDeFgHIjKL abCdeFfGHiJKL abCdeFgHiJKL  aBcDefGhIjKL AbCdEefGhIjKL
  aBCdEfgHiJkL aBCdEFghIjKl  AbCcDEfGhIjKl  AbCdEfGHiJkL aBcdEfGHhIJkL

  aBcdEfGhIJKl AbCdeFgHiJKL  aBcDeeFgHiJKl  ABcDefGhIjKl ABCdEfgHiJkL
  aBCdDeFgHiJkL  aBcDEfGhIjKl AbCdEfGhIJkL  aBbcDeFGhIJkL  aBcdEfGhIJKl
  AbCdeFfgHIJkL  AbCdeFghIJkL ABcDefGhiJkL  ABcDEefGhIjkL  AbCDeFgHiJkL
  aBcDeFGhIjKl AbbCdEFgHIjKl AbcDeFgHIJkL  aBcdEfGgHIjKL  aBcdEfgHIjKL
  AbCdeFghIjKL AbCDeeFghIjKL aBCdEfGhIjkL  AbCdEFgHiJkl AbCDdEfGHiJkL
  abCdEfGHiJKl AbcDeFgHIjKL  aBbcDefGHiJKL  aBcdEfgHiJKL aBCdeFfgHiJKl
  ABCdeFghIjKl ABCdEfGhiJkL  aBCdEEfGhIjkL  aBcDEfGHiJkL abCdEfGHiJKl
  AbcCdEfGhIJKl  AbcDefGhIJKl ABcdEfgGhIJkL ABcdEfgHiJkL  ABcDeFghIjKl
  ABcDEfFghIjKl  AbCDeFGhIjkL aBcDeFGhIJkL  abCdDeFgHIjKL  abCdeFgHIJkL
  AbcDefGhIJkL ABccDefGhIjKL)
}
Japanese0764 =

『唐・日本における進朔に関する研究』(2013-10版)を使用する場合の朔閏表

PatternTableBasedLuniSolar, {
'origin_of_MSC'=>764, 'origin_of_LSC'=>2000146,
'indices'=> [
     When.Index('Japanese::Month', {:branch=>{1=>'_m:Calendar::閏'}}),
     When::Coordinates::DefaultDayIndex
 ],
'before'  => 'Japanese', 'after' => 'Japanese', 'note' => 'Japanese',
'remarks' => When.M17n('Japanese::based on Research Project 22520700'),
'rule_table'=> %w(        aBCdEfGhiJkL  aBCdEFgHiJjkL
  aBCdEfGHiJkL abCdEfGHiJKl  AbcDeFfGHiJKl  AbCdeFghIJKL aBcdEfgHiJKL
  aBCcDefgHiJKl  ABCdeFgHijKL aBcDEfGhIjkKL aBcDEfGhIjkL  AbcDEfGHiJkL
  aBcdEfGHhIJkL  aBcdEfgHIJkL AbCDefghIJKl  ABcDeefGhIJKL  aBcDefgHiJKL
  aBcDeFgHijKl AAbCDeFghIjKl ABcDeFGhIjkL  aBcDeFGhIiJKl  aBcDeFgHIJkL
  aBcdEfgHIjKL AbCdeeFgHiJKL aBCdefGhIjKL  AbCdEfgHiJkL ABcCdEfGhiJkL
  AbCDeFgHijKl ABcDeFgHIjKkl AbCdEfGHiJkL  aBcdEfGHiJKL abCdeFgGHiJKL
  abCdeFgHiJKL aBcDefGhIjKL  AbCdEefGhiJKL  aBCdEfgHiJkL aBCdEfGhIjKl

  AaBcDeFGhIjKl  AbcDEfGHiJkL aBcdEfGHiJJkL aBcdEfGhIJKl  AbCdeFghIJKL
  aBcDefFghIJKL  aBcDefGhIjKl ABcDEfgHijKL  aBbCDeFgHiJkL  aBcDeFGhIJkl
  AbcDeFGhIJkLl  AbcDeFgHIJkL aBcdEfGhIJKl  AbCdeFggHIjKL  AbCdeFghIjKL
  ABcDefGhiJKl AbCDdEfGhIjkL AbCDeFgHiJkL  aBcDeFgHIjKl AabCdEFgHIjKl
  AbcDeFgHIjKL aBcdEfgHIiJKL aBcdEfgHIjKL  aBCdeFghIjKL AbCdEfGghIjKl
  ABCdEfGhiJkL aBCdEfGHiJkL  AbccDEfGHiJkL  abCdEfGHiJKl AbcDEfgHiJKLl
  AbcDefGHiJKL AbcdEfgHiJKL  aBCdeFggHiJKl  ABcDeFghIjKL aBCdEfGhiJkL
  aBCdEeFGhIjkL  aBcDeFGhIJkL abCdEfGHiJKl  AabCdeFGhIJKl  AbcDefGhIJKl
  ABcdEfgHiIJkL  ABcdEfgHiJKl ABcDeFghIjKl  ABcDEfGgHijKl  AbCDeFgHIjKl
  aBcDeFGhIJkL abCcDeFgHIJkL abCdeFgHIJkL  AbcDefGhIJkLL  AbcDefGhIjKL

  AbCdEfgHiJkL AbCDeFghHiJkL AbCdEFghIjKl  AbCdEFgHiJKL abcDdEfGHiJKl
  aBcdEfGHIjKL abCdeFgHIjKL  AbbCdeFgHiJKL  aBcDefGhIjKL AbCdEfgHiJJkL
  aBCdEfgHiJkL)
}
InternationalFixed =

InternationalFixed calendar based on Gregorian calendar

[SolarYearTableBased, {
  'label'   => 'InternationalFixed',
  'indices' => [
      When.Index('InternationalFixedWeekNotes::month::Month', {:unit =>13}),
     When::Coordinates::DefaultDayIndex
    ],
  'rule_table'       => {
    365  => {'Length'=>[28] * 12 + [29]},
    366  => {'Length'=>[28] *  5 + [29] + [28] * 6 + [29]}
  },
  'note'   => 'InternationalFixedWeek'
}]
TimeSystems =

Martian Time, Coordinated

_time_systems.keys.join('|')