Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ GetDatePart()

int System.Globalization.PersianCalendar.GetDatePart ( long ticks,
int part )
inlinepackage

Definition at line 117 of file PersianCalendar.cs.

118 {
119 CheckTicksRange(ticks);
120 long num = ticks / 864000000000L + 1;
121 long num2 = CalendricalCalculationsHelper.PersianNewYearOnOrBefore(num);
122 int num3 = (int)Math.Floor((double)(num2 - s_persianEpoch) / 365.242189 + 0.5) + 1;
123 if (part == 0)
124 {
125 return num3;
126 }
127 int num4 = (int)(num - CalendricalCalculationsHelper.GetNumberOfDays(ToDateTime(num3, 1, 1, 0, 0, 0, 0, 1)));
128 if (part == 1)
129 {
130 return num4;
131 }
132 int num5 = MonthFromOrdinalDay(num4);
133 if (part == 2)
134 {
135 return num5;
136 }
137 int result = num4 - DaysInPreviousMonths(num5);
138 if (part == 3)
139 {
140 return result;
141 }
142 throw new InvalidOperationException(SR.InvalidOperation_DateTimeParsing);
143 }
static int DaysInPreviousMonths(int month)
override DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era)
static void CheckTicksRange(long ticks)
static int MonthFromOrdinalDay(int ordinalDay)

References System.Globalization.PersianCalendar.CheckTicksRange(), System.Globalization.PersianCalendar.DaysInPreviousMonths(), System.Math.Floor(), System.Globalization.CalendricalCalculationsHelper.GetNumberOfDays(), System.SR.InvalidOperation_DateTimeParsing, System.L, System.Globalization.PersianCalendar.MonthFromOrdinalDay(), System.Globalization.CalendricalCalculationsHelper.PersianNewYearOnOrBefore(), System.Globalization.PersianCalendar.s_persianEpoch, and System.Globalization.PersianCalendar.ToDateTime().

Referenced by System.Globalization.PersianCalendar.AddMonths(), System.Globalization.PersianCalendar.GetDayOfMonth(), System.Globalization.PersianCalendar.GetDayOfYear(), System.Globalization.PersianCalendar.GetMonth(), and System.Globalization.PersianCalendar.GetYear().