134 lines
3.6 KiB
C#
134 lines
3.6 KiB
C#
using System;
|
|
|
|
namespace System.Globalization
|
|
{
|
|
// Token: 0x0200016E RID: 366
|
|
internal class CCJulianCalendar
|
|
{
|
|
// Token: 0x060011DF RID: 4575 RVA: 0x000466B0 File Offset: 0x000448B0
|
|
public static bool is_leap_year(int year)
|
|
{
|
|
return CCMath.mod(year, 4) == ((year <= 0) ? 3 : 0);
|
|
}
|
|
|
|
// Token: 0x060011E0 RID: 4576 RVA: 0x000466CC File Offset: 0x000448CC
|
|
public static int fixed_from_dmy(int day, int month, int year)
|
|
{
|
|
int num = ((year >= 0) ? year : (year + 1));
|
|
int num2 = -2;
|
|
num2 += 365 * (num - 1);
|
|
num2 += CCMath.div(num - 1, 4);
|
|
num2 += CCMath.div(367 * month - 362, 12);
|
|
if (month > 2)
|
|
{
|
|
num2 += ((!CCJulianCalendar.is_leap_year(year)) ? (-2) : (-1));
|
|
}
|
|
return num2 + day;
|
|
}
|
|
|
|
// Token: 0x060011E1 RID: 4577 RVA: 0x00046740 File Offset: 0x00044940
|
|
public static int year_from_fixed(int date)
|
|
{
|
|
int num = CCMath.div(4 * (date - -1) + 1464, 1461);
|
|
return (num > 0) ? num : (num - 1);
|
|
}
|
|
|
|
// Token: 0x060011E2 RID: 4578 RVA: 0x00046774 File Offset: 0x00044974
|
|
public static void my_from_fixed(out int month, out int year, int date)
|
|
{
|
|
year = CCJulianCalendar.year_from_fixed(date);
|
|
int num = date - CCJulianCalendar.fixed_from_dmy(1, 1, year);
|
|
int num2;
|
|
if (date < CCJulianCalendar.fixed_from_dmy(1, 3, year))
|
|
{
|
|
num2 = 0;
|
|
}
|
|
else if (CCJulianCalendar.is_leap_year(year))
|
|
{
|
|
num2 = 1;
|
|
}
|
|
else
|
|
{
|
|
num2 = 2;
|
|
}
|
|
month = CCMath.div(12 * (num + num2) + 373, 367);
|
|
}
|
|
|
|
// Token: 0x060011E3 RID: 4579 RVA: 0x000467D8 File Offset: 0x000449D8
|
|
public static void dmy_from_fixed(out int day, out int month, out int year, int date)
|
|
{
|
|
CCJulianCalendar.my_from_fixed(out month, out year, date);
|
|
day = date - CCJulianCalendar.fixed_from_dmy(1, month, year) + 1;
|
|
}
|
|
|
|
// Token: 0x060011E4 RID: 4580 RVA: 0x000467F4 File Offset: 0x000449F4
|
|
public static int month_from_fixed(int date)
|
|
{
|
|
int num;
|
|
int num2;
|
|
CCJulianCalendar.my_from_fixed(out num, out num2, date);
|
|
return num;
|
|
}
|
|
|
|
// Token: 0x060011E5 RID: 4581 RVA: 0x0004680C File Offset: 0x00044A0C
|
|
public static int day_from_fixed(int date)
|
|
{
|
|
int num;
|
|
int num2;
|
|
int num3;
|
|
CCJulianCalendar.dmy_from_fixed(out num, out num2, out num3, date);
|
|
return num;
|
|
}
|
|
|
|
// Token: 0x060011E6 RID: 4582 RVA: 0x00046828 File Offset: 0x00044A28
|
|
public static int date_difference(int dayA, int monthA, int yearA, int dayB, int monthB, int yearB)
|
|
{
|
|
return CCJulianCalendar.fixed_from_dmy(dayB, monthB, yearB) - CCJulianCalendar.fixed_from_dmy(dayA, monthA, yearA);
|
|
}
|
|
|
|
// Token: 0x060011E7 RID: 4583 RVA: 0x00046840 File Offset: 0x00044A40
|
|
public static int day_number(int day, int month, int year)
|
|
{
|
|
return CCJulianCalendar.date_difference(31, 12, year - 1, day, month, year);
|
|
}
|
|
|
|
// Token: 0x060011E8 RID: 4584 RVA: 0x00046854 File Offset: 0x00044A54
|
|
public static int days_remaining(int day, int month, int year)
|
|
{
|
|
return CCJulianCalendar.date_difference(day, month, year, 31, 12, year);
|
|
}
|
|
|
|
// Token: 0x0400047D RID: 1149
|
|
private const int epoch = -1;
|
|
|
|
// Token: 0x0200016F RID: 367
|
|
public enum Month
|
|
{
|
|
// Token: 0x0400047F RID: 1151
|
|
january = 1,
|
|
// Token: 0x04000480 RID: 1152
|
|
february,
|
|
// Token: 0x04000481 RID: 1153
|
|
march,
|
|
// Token: 0x04000482 RID: 1154
|
|
april,
|
|
// Token: 0x04000483 RID: 1155
|
|
may,
|
|
// Token: 0x04000484 RID: 1156
|
|
june,
|
|
// Token: 0x04000485 RID: 1157
|
|
july,
|
|
// Token: 0x04000486 RID: 1158
|
|
august,
|
|
// Token: 0x04000487 RID: 1159
|
|
september,
|
|
// Token: 0x04000488 RID: 1160
|
|
october,
|
|
// Token: 0x04000489 RID: 1161
|
|
november,
|
|
// Token: 0x0400048A RID: 1162
|
|
december
|
|
}
|
|
}
|
|
}
|