Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
JapaneseLunisolarCalendar.cs
Go to the documentation of this file.
2
4{
5 public const int JapaneseEra = 1;
6
8
9 private static readonly DateTime s_minDate = new DateTime(1960, 1, 28);
10
11 private static readonly DateTime s_maxDate = new DateTime(new DateTime(2050, 1, 22, 23, 59, 59, 999).Ticks + 9999);
12
13 private static readonly int[,] s_yinfo = new int[90, 4]
14 {
15 { 6, 1, 28, 44368 },
16 { 0, 2, 15, 43856 },
17 { 0, 2, 5, 19296 },
18 { 4, 1, 25, 42352 },
19 { 0, 2, 13, 42352 },
20 { 0, 2, 2, 21104 },
21 { 3, 1, 22, 26928 },
22 { 0, 2, 9, 55632 },
23 { 7, 1, 30, 27304 },
24 { 0, 2, 17, 22176 },
25 { 0, 2, 6, 39632 },
26 { 5, 1, 27, 19176 },
27 { 0, 2, 15, 19168 },
28 { 0, 2, 3, 42208 },
29 { 4, 1, 23, 53864 },
30 { 0, 2, 11, 53840 },
31 { 8, 1, 31, 54600 },
32 { 0, 2, 18, 46400 },
33 { 0, 2, 7, 54944 },
34 { 6, 1, 28, 38608 },
35 { 0, 2, 16, 38320 },
36 { 0, 2, 5, 18864 },
37 { 4, 1, 25, 42200 },
38 { 0, 2, 13, 42160 },
39 { 10, 2, 2, 45656 },
40 { 0, 2, 20, 27216 },
41 { 0, 2, 9, 27968 },
42 { 6, 1, 29, 46504 },
43 { 0, 2, 18, 11104 },
44 { 0, 2, 6, 38320 },
45 { 5, 1, 27, 18872 },
46 { 0, 2, 15, 18800 },
47 { 0, 2, 4, 25776 },
48 { 3, 1, 23, 27216 },
49 { 0, 2, 10, 59984 },
50 { 8, 1, 31, 27976 },
51 { 0, 2, 19, 23248 },
52 { 0, 2, 8, 11104 },
53 { 5, 1, 28, 37744 },
54 { 0, 2, 16, 37600 },
55 { 0, 2, 5, 51552 },
56 { 4, 1, 24, 58536 },
57 { 0, 2, 12, 54432 },
58 { 0, 2, 1, 55888 },
59 { 2, 1, 22, 23208 },
60 { 0, 2, 9, 22208 },
61 { 7, 1, 29, 43736 },
62 { 0, 2, 18, 9680 },
63 { 0, 2, 7, 37584 },
64 { 5, 1, 26, 51544 },
65 { 0, 2, 14, 43344 },
66 { 0, 2, 3, 46240 },
67 { 3, 1, 23, 47696 },
68 { 0, 2, 10, 46416 },
69 { 9, 1, 31, 21928 },
70 { 0, 2, 19, 19360 },
71 { 0, 2, 8, 42416 },
72 { 5, 1, 28, 21176 },
73 { 0, 2, 16, 21168 },
74 { 0, 2, 5, 43344 },
75 { 4, 1, 25, 46248 },
76 { 0, 2, 12, 27296 },
77 { 0, 2, 1, 44368 },
78 { 2, 1, 22, 21928 },
79 { 0, 2, 10, 19296 },
80 { 6, 1, 29, 42352 },
81 { 0, 2, 17, 42352 },
82 { 0, 2, 7, 21104 },
83 { 5, 1, 27, 26928 },
84 { 0, 2, 13, 55600 },
85 { 0, 2, 3, 23200 },
86 { 3, 1, 23, 43856 },
87 { 0, 2, 11, 38608 },
88 { 11, 1, 31, 19176 },
89 { 0, 2, 19, 19168 },
90 { 0, 2, 8, 42192 },
91 { 6, 1, 28, 53864 },
92 { 0, 2, 15, 53840 },
93 { 0, 2, 4, 54560 },
94 { 5, 1, 24, 55968 },
95 { 0, 2, 12, 46752 },
96 { 0, 2, 1, 38608 },
97 { 2, 1, 22, 19160 },
98 { 0, 2, 10, 18864 },
99 { 7, 1, 30, 42168 },
100 { 0, 2, 17, 42160 },
101 { 0, 2, 6, 45648 },
102 { 5, 1, 26, 46376 },
103 { 0, 2, 14, 27968 },
104 { 0, 2, 2, 44448 }
105 };
106
108
110
111 protected override int DaysInYearBeforeMinSupportedYear => 354;
112
113 internal override int MinCalendarYear => 1960;
114
115 internal override int MaxCalendarYear => 2049;
116
117 internal override DateTime MinDate => s_minDate;
118
119 internal override DateTime MaxDate => s_maxDate;
120
122
123 internal override CalendarId BaseCalendarID => CalendarId.JAPAN;
124
125 internal override CalendarId ID => CalendarId.JAPANESELUNISOLAR;
126
127 public override int[] Eras => _helper.Eras;
128
129 internal override int GetYearInfo(int lunarYear, int index)
130 {
131 if (lunarYear < 1960 || lunarYear > 2049)
132 {
133 throw new ArgumentOutOfRangeException("year", lunarYear, SR.Format(SR.ArgumentOutOfRange_Range, 1960, 2049));
134 }
135 return s_yinfo[lunarYear - 1960, index];
136 }
137
138 internal override int GetYear(int year, DateTime time)
139 {
140 return _helper.GetYear(year, time);
141 }
142
143 internal override int GetGregorianYear(int year, int era)
144 {
145 return _helper.GetGregorianYear(year, era);
146 }
147
148 private static EraInfo[] TrimEras(EraInfo[] baseEras)
149 {
150 EraInfo[] array = new EraInfo[baseEras.Length];
151 int num = 0;
152 for (int i = 0; i < baseEras.Length; i++)
153 {
154 if (baseEras[i].yearOffset + baseEras[i].minEraYear < 2049)
155 {
156 if (baseEras[i].yearOffset + baseEras[i].maxEraYear < 1960)
157 {
158 break;
159 }
160 array[num] = baseEras[i];
161 num++;
162 }
163 }
164 if (num == 0)
165 {
166 return baseEras;
167 }
168 Array.Resize(ref array, num);
169 return array;
170 }
171
176
177 public override int GetEra(DateTime time)
178 {
179 return _helper.GetEra(time);
180 }
181}
override int GetYearInfo(int lunarYear, int index)
static string ArgumentOutOfRange_Range
Definition SR.cs:1096
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
Definition SR.cs:7