using System; namespace System.Globalization { // Token: 0x02000170 RID: 368 internal class CCHebrewCalendar { // Token: 0x060011EA RID: 4586 RVA: 0x0004686C File Offset: 0x00044A6C public static bool is_leap_year(int year) { return CCMath.mod(7 * year + 1, 19) < 7; } // Token: 0x060011EB RID: 4587 RVA: 0x00046880 File Offset: 0x00044A80 public static int last_month_of_year(int year) { return (!CCHebrewCalendar.is_leap_year(year)) ? 12 : 13; } // Token: 0x060011EC RID: 4588 RVA: 0x00046898 File Offset: 0x00044A98 public static int elapsed_days(int year) { int num = CCMath.div(235 * year - 234, 19); int num3; int num2 = CCMath.div_mod(out num3, num, 1080); int num4 = 204 + 793 * num3; int num5 = 11 + 12 * num + 793 * num2 + CCMath.div(num4, 1080); int num6 = 29 * num + CCMath.div(num5, 24); if (CCMath.mod(3 * (num6 + 1), 7) < 3) { num6++; } return num6; } // Token: 0x060011ED RID: 4589 RVA: 0x00046920 File Offset: 0x00044B20 public static int new_year_delay(int year) { int num = CCHebrewCalendar.elapsed_days(year); int num2 = CCHebrewCalendar.elapsed_days(year + 1); if (num2 - num == 356) { return 2; } int num3 = CCHebrewCalendar.elapsed_days(year - 1); if (num - num3 == 382) { return 1; } return 0; } // Token: 0x060011EE RID: 4590 RVA: 0x00046968 File Offset: 0x00044B68 public static int last_day_of_month(int month, int year) { if (month < 1 || month > 13) { throw new ArgumentOutOfRangeException("month", "Month should be between One and Thirteen."); } switch (month) { case 2: return 29; case 4: return 29; case 6: return 29; case 8: if (!CCHebrewCalendar.long_heshvan(year)) { return 29; } break; case 9: if (CCHebrewCalendar.short_kislev(year)) { return 29; } break; case 10: return 29; case 12: if (!CCHebrewCalendar.is_leap_year(year)) { return 29; } break; case 13: return 29; } return 30; } // Token: 0x060011EF RID: 4591 RVA: 0x00046A20 File Offset: 0x00044C20 public static bool long_heshvan(int year) { return CCMath.mod(CCHebrewCalendar.days_in_year(year), 10) == 5; } // Token: 0x060011F0 RID: 4592 RVA: 0x00046A34 File Offset: 0x00044C34 public static bool short_kislev(int year) { return CCMath.mod(CCHebrewCalendar.days_in_year(year), 10) == 3; } // Token: 0x060011F1 RID: 4593 RVA: 0x00046A48 File Offset: 0x00044C48 public static int days_in_year(int year) { return CCHebrewCalendar.fixed_from_dmy(1, 7, year + 1) - CCHebrewCalendar.fixed_from_dmy(1, 7, year); } // Token: 0x060011F2 RID: 4594 RVA: 0x00046A60 File Offset: 0x00044C60 public static int fixed_from_dmy(int day, int month, int year) { int num = -1373428; num += CCHebrewCalendar.elapsed_days(year); num += CCHebrewCalendar.new_year_delay(year); if (month < 7) { int num2 = CCHebrewCalendar.last_month_of_year(year); for (int i = 7; i <= num2; i++) { num += CCHebrewCalendar.last_day_of_month(i, year); } for (int i = 1; i < month; i++) { num += CCHebrewCalendar.last_day_of_month(i, year); } } else { for (int i = 7; i < month; i++) { num += CCHebrewCalendar.last_day_of_month(i, year); } } return num + day; } // Token: 0x060011F3 RID: 4595 RVA: 0x00046AF4 File Offset: 0x00044CF4 public static int year_from_fixed(int date) { int num = (int)Math.Floor((double)(date - -1373427) / 365.24682220597794); int num2 = num; while (date >= CCHebrewCalendar.fixed_from_dmy(1, 7, num2)) { num2++; } return num2 - 1; } // Token: 0x060011F4 RID: 4596 RVA: 0x00046B38 File Offset: 0x00044D38 public static void my_from_fixed(out int month, out int year, int date) { year = CCHebrewCalendar.year_from_fixed(date); int num = ((date >= CCHebrewCalendar.fixed_from_dmy(1, 1, year)) ? 1 : 7); month = num; while (date > CCHebrewCalendar.fixed_from_dmy(CCHebrewCalendar.last_day_of_month(month, year), month, year)) { month++; } } // Token: 0x060011F5 RID: 4597 RVA: 0x00046B8C File Offset: 0x00044D8C public static void dmy_from_fixed(out int day, out int month, out int year, int date) { CCHebrewCalendar.my_from_fixed(out month, out year, date); day = date - CCHebrewCalendar.fixed_from_dmy(1, month, year) + 1; } // Token: 0x060011F6 RID: 4598 RVA: 0x00046BA8 File Offset: 0x00044DA8 public static int month_from_fixed(int date) { int num; int num2; CCHebrewCalendar.my_from_fixed(out num, out num2, date); return num; } // Token: 0x060011F7 RID: 4599 RVA: 0x00046BC0 File Offset: 0x00044DC0 public static int day_from_fixed(int date) { int num; int num2; int num3; CCHebrewCalendar.dmy_from_fixed(out num, out num2, out num3, date); return num; } // Token: 0x060011F8 RID: 4600 RVA: 0x00046BDC File Offset: 0x00044DDC public static int date_difference(int dayA, int monthA, int yearA, int dayB, int monthB, int yearB) { return CCHebrewCalendar.fixed_from_dmy(dayB, monthB, yearB) - CCHebrewCalendar.fixed_from_dmy(dayA, monthA, yearA); } // Token: 0x060011F9 RID: 4601 RVA: 0x00046BF4 File Offset: 0x00044DF4 public static int day_number(int day, int month, int year) { return CCHebrewCalendar.date_difference(1, 7, year, day, month, year) + 1; } // Token: 0x060011FA RID: 4602 RVA: 0x00046C04 File Offset: 0x00044E04 public static int days_remaining(int day, int month, int year) { return CCHebrewCalendar.date_difference(day, month, year, 1, 7, year + 1) - 1; } // Token: 0x0400048B RID: 1163 private const int epoch = -1373427; // Token: 0x02000171 RID: 369 public enum Month { // Token: 0x0400048D RID: 1165 nisan = 1, // Token: 0x0400048E RID: 1166 iyyar, // Token: 0x0400048F RID: 1167 sivan, // Token: 0x04000490 RID: 1168 tammuz, // Token: 0x04000491 RID: 1169 av, // Token: 0x04000492 RID: 1170 elul, // Token: 0x04000493 RID: 1171 tishri, // Token: 0x04000494 RID: 1172 heshvan, // Token: 0x04000495 RID: 1173 kislev, // Token: 0x04000496 RID: 1174 teveth, // Token: 0x04000497 RID: 1175 shevat, // Token: 0x04000498 RID: 1176 adar, // Token: 0x04000499 RID: 1177 adar_I = 12, // Token: 0x0400049A RID: 1178 adar_II } } }