5 static string GetDateTimeLocal()
7 int year, month, day, hour, minute, second;
8 System.GetYearMonthDay(year, month, day);
9 System.GetHourMinuteSecond(hour, minute, second);
10 return SCR_FormatHelper.FormatDateTime(year, month, day, hour, minute, second);
15 static string GetDateTimeUTC()
17 int year, month, day, hour, minute, second;
18 System.GetYearMonthDayUTC(year, month, day);
19 System.GetHourMinuteSecondUTC(hour, minute, second);
20 return SCR_FormatHelper.FormatDateTime(year, month, day, hour, minute, second);
30 static int GetDayNumber(
int year,
int month,
int day)
32 if (month < 1 || month > 12 || day < 1 || day > 31)
36 31, 28, 31, 30, 31, 30,
37 31, 31, 30, 31, 30, 31,
40 if (month > 2 && IsLeapYear(year))
43 if (day > monthDays[month - 1])
47 for (
int i; i < month - 1; ++i)
49 result += monthDays[i];
60 static bool IsLeapYear(
int year)
62 return year % 400 == 0 || (year % 100 != 0 && year % 4 == 0);
72 static string GetDateString(
int day,
int month,
int year,
bool verbose =
true)
77 return WidgetManager.Translate(
"#AR-Date_Format", day, month, year);
85 static string GetMonthString(
int month,
bool standalone =
false)
91 case 1:
return "#AR-Date_January_Standalone";
92 case 2:
return "#AR-Date_February_Standalone";
93 case 3:
return "#AR-Date_March_Standalone";
94 case 4:
return "#AR-Date_April_Standalone";
95 case 5:
return "#AR-Date_May_Standalone";
96 case 6:
return "#AR-Date_June_Standalone";
97 case 7:
return "#AR-Date_July_Standalone";
98 case 8:
return "#AR-Date_August_Standalone";
99 case 9:
return "#AR-Date_September_Standalone";
100 case 10:
return "#AR-Date_October_Standalone";
101 case 11:
return "#AR-Date_November_Standalone";
102 case 12:
return "#AR-Date_December_Standalone";
109 case 1:
return "#AR-Date_January";
110 case 2:
return "#AR-Date_February";
111 case 3:
return "#AR-Date_March";
112 case 4:
return "#AR-Date_April";
113 case 5:
return "#AR-Date_May";
114 case 6:
return "#AR-Date_June";
115 case 7:
return "#AR-Date_July";
116 case 8:
return "#AR-Date_August";
117 case 9:
return "#AR-Date_September";
118 case 10:
return "#AR-Date_October";
119 case 11:
return "#AR-Date_November";
120 case 12:
return "#AR-Date_December";
131 static string GetAbbreviatedMonthString(
int month)
135 case 1:
return "#AR-Date_January_StandaloneShort";
136 case 2:
return "#AR-Date_February_StandaloneShort";
137 case 3:
return "#AR-Date_March_StandaloneShort";
138 case 4:
return "#AR-Date_April_StandaloneShort";
139 case 5:
return "#AR-Date_May_StandaloneShort";
140 case 6:
return "#AR-Date_June_StandaloneShort";
141 case 7:
return "#AR-Date_July_StandaloneShort";
142 case 8:
return "#AR-Date_August_StandaloneShort";
143 case 9:
return "#AR-Date_September_StandaloneShort";
144 case 10:
return "#AR-Date_October_StandaloneShort";
145 case 11:
return "#AR-Date_November_StandaloneShort";
146 case 12:
return "#AR-Date_December_StandaloneShort";
157 static int GetMaxDayFromMonth(
int month,
int year = -1)
159 if (month < 1 || month > 12)
163 if (year > 0 && month == 2)
165 if (IsLeapYear(year))
173 else if (month == 4 || month == 6 || month == 9 || month == 11)
190 static int GetTimeDifference(
int hour0,
int minute0,
int second0,
int hour1,
int minute1,
int second1, out
int hour = 0, out
int minute = 0, out
int second = 0)
192 int time0 = GetSecondsFromHourMinuteSecond(hour0, minute0, second0);
193 int time1 = GetSecondsFromHourMinuteSecond(hour1, minute1, second1);
195 int result = time0 - time1;
199 GetHourMinuteSecondFromSeconds(result, hour, minute, second);
212 static string GetTimeDifferenceFormatted(
int hour0,
int minute0,
int second0,
int hour1,
int minute1,
int second1)
214 int hour, minute, second;
215 GetTimeDifference(hour0, minute0, second0, hour1, minute1, second1, hour, minute, second);
221 static string GetTimeLocal()
223 int hour, minute, second;
224 System.GetHourMinuteSecond(hour, minute, second);
230 static string GetTimeUTC()
232 int hour, minute, second;
233 System.GetHourMinuteSecondUTC(hour, minute, second);
244 static void GetDayHourMinuteSecondFromSeconds(
int totalSeconds, out
int outDays, out
int outHours, out
int outMinutes, out
int outSeconds)
246 if (totalSeconds < 0)
247 totalSeconds = -totalSeconds;
249 outDays = totalSeconds / 86400;
250 outHours = (totalSeconds % 86400) / 3600;
251 outMinutes = (totalSeconds % 3600) / 60;
252 outSeconds = totalSeconds % 60;
261 static void GetHourMinuteSecondFromSeconds(
int totalSeconds, out
int outHours, out
int outMinutes, out
int outSeconds)
263 if (totalSeconds < 0)
264 totalSeconds = -totalSeconds;
266 outHours = totalSeconds / 3600;
267 outMinutes = (totalSeconds % 3600) / 60;
268 outSeconds = totalSeconds % 60;
276 static int GetSecondsFromHourMinuteSecond(
int hour = 0,
int minute = 0,
int second = 0)
278 return hour * 3600 + minute * 60 + second;
288 static int ConvertDateIntoMinutes(
int year = 0,
int month = 0,
int day = 0,
int hour = 0,
int minutes = 0)
290 return (year * 525600) + (month * 43800) + (day * 1440) + (hour * 60) + minutes;
301 static void ConvertMinutesIntoDate(
int totalDateMinutes, out
int year, out
int month, out
int day, out
int hour, out
int minutes)
303 if (totalDateMinutes < 0)
304 totalDateMinutes = -totalDateMinutes;
306 year = totalDateMinutes / 525600;
307 totalDateMinutes -= year * 525600;
309 month = totalDateMinutes / 43800;
310 totalDateMinutes -= month * 43800;
312 day = totalDateMinutes / 1440;
313 totalDateMinutes -= day * 1440;
315 hour = totalDateMinutes / 60;
316 totalDateMinutes -= hour * 60;
318 minutes = totalDateMinutes;