115 lines
3.3 KiB
C#
115 lines
3.3 KiB
C#
using System;
|
|
|
|
namespace System.Globalization
|
|
{
|
|
// Token: 0x02000172 RID: 370
|
|
internal class CCHijriCalendar
|
|
{
|
|
// Token: 0x060011FC RID: 4604 RVA: 0x00046C20 File Offset: 0x00044E20
|
|
public static bool is_leap_year(int year)
|
|
{
|
|
return CCMath.mod(14 + 11 * year, 30) < 11;
|
|
}
|
|
|
|
// Token: 0x060011FD RID: 4605 RVA: 0x00046C34 File Offset: 0x00044E34
|
|
public static int fixed_from_dmy(int day, int month, int year)
|
|
{
|
|
int num = 227013;
|
|
num += 354 * (year - 1);
|
|
num += CCMath.div(3 + 11 * year, 30);
|
|
num += (int)Math.Ceiling(29.5 * (double)(month - 1));
|
|
return num + day;
|
|
}
|
|
|
|
// Token: 0x060011FE RID: 4606 RVA: 0x00046C80 File Offset: 0x00044E80
|
|
public static int year_from_fixed(int date)
|
|
{
|
|
return CCMath.div(30 * (date - 227014) + 10646, 10631);
|
|
}
|
|
|
|
// Token: 0x060011FF RID: 4607 RVA: 0x00046C9C File Offset: 0x00044E9C
|
|
public static void my_from_fixed(out int month, out int year, int date)
|
|
{
|
|
year = CCHijriCalendar.year_from_fixed(date);
|
|
int num = 1 + (int)Math.Ceiling((double)(date - 29 - CCHijriCalendar.fixed_from_dmy(1, 1, year)) / 29.5);
|
|
month = ((num >= 12) ? 12 : num);
|
|
}
|
|
|
|
// Token: 0x06001200 RID: 4608 RVA: 0x00046CE8 File Offset: 0x00044EE8
|
|
public static void dmy_from_fixed(out int day, out int month, out int year, int date)
|
|
{
|
|
CCHijriCalendar.my_from_fixed(out month, out year, date);
|
|
day = date - CCHijriCalendar.fixed_from_dmy(1, month, year) + 1;
|
|
}
|
|
|
|
// Token: 0x06001201 RID: 4609 RVA: 0x00046D04 File Offset: 0x00044F04
|
|
public static int month_from_fixed(int date)
|
|
{
|
|
int num;
|
|
int num2;
|
|
CCHijriCalendar.my_from_fixed(out num, out num2, date);
|
|
return num;
|
|
}
|
|
|
|
// Token: 0x06001202 RID: 4610 RVA: 0x00046D1C File Offset: 0x00044F1C
|
|
public static int day_from_fixed(int date)
|
|
{
|
|
int num;
|
|
int num2;
|
|
int num3;
|
|
CCHijriCalendar.dmy_from_fixed(out num, out num2, out num3, date);
|
|
return num;
|
|
}
|
|
|
|
// Token: 0x06001203 RID: 4611 RVA: 0x00046D38 File Offset: 0x00044F38
|
|
public static int date_difference(int dayA, int monthA, int yearA, int dayB, int monthB, int yearB)
|
|
{
|
|
return CCHijriCalendar.fixed_from_dmy(dayB, monthB, yearB) - CCHijriCalendar.fixed_from_dmy(dayA, monthA, yearA);
|
|
}
|
|
|
|
// Token: 0x06001204 RID: 4612 RVA: 0x00046D50 File Offset: 0x00044F50
|
|
public static int day_number(int day, int month, int year)
|
|
{
|
|
return CCHijriCalendar.date_difference(31, 12, year - 1, day, month, year);
|
|
}
|
|
|
|
// Token: 0x06001205 RID: 4613 RVA: 0x00046D64 File Offset: 0x00044F64
|
|
public static int days_remaining(int day, int month, int year)
|
|
{
|
|
return CCHijriCalendar.date_difference(day, month, year, 31, 12, year);
|
|
}
|
|
|
|
// Token: 0x0400049B RID: 1179
|
|
private const int epoch = 227014;
|
|
|
|
// Token: 0x02000173 RID: 371
|
|
public enum Month
|
|
{
|
|
// Token: 0x0400049D RID: 1181
|
|
muharram = 1,
|
|
// Token: 0x0400049E RID: 1182
|
|
safar,
|
|
// Token: 0x0400049F RID: 1183
|
|
rabi_I,
|
|
// Token: 0x040004A0 RID: 1184
|
|
rabi_II,
|
|
// Token: 0x040004A1 RID: 1185
|
|
jumada_I,
|
|
// Token: 0x040004A2 RID: 1186
|
|
jumada_II,
|
|
// Token: 0x040004A3 RID: 1187
|
|
rajab,
|
|
// Token: 0x040004A4 RID: 1188
|
|
shaban,
|
|
// Token: 0x040004A5 RID: 1189
|
|
ramadan,
|
|
// Token: 0x040004A6 RID: 1190
|
|
shawwal,
|
|
// Token: 0x040004A7 RID: 1191
|
|
dhu_al_quada,
|
|
// Token: 0x040004A8 RID: 1192
|
|
dhu_al_hijja
|
|
}
|
|
}
|
|
}
|