Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define SPLITTER .
- new MonthTimes[12][4] =
- {
- { 31, 31, 2678400, 2678400 },
- { 28, 29, 2419200, 2505600 },
- { 31, 31, 2678400, 2678400 },
- { 30, 30, 2592000, 2592000 },
- { 31, 31, 2678400, 2678400 },
- { 30, 30, 2592000, 2592000 },
- { 31, 31, 2678400, 2678400 },
- { 31, 31, 2678400, 2678400 },
- { 30, 30, 2592000, 2592000 },
- { 31, 31, 2678400, 2678400 },
- { 30, 30, 2592000, 2592000 },
- { 31, 31, 2678400, 2678400 }
- };
- stock IsLeapYear(year)
- {
- if(year % 4 == 0) return 1;
- else return 0;
- }
- stock TimestampToDate(Timestamp, &year, &month, &day, &hour, &minute, &second, HourGMT, MinuteGMT = 0)
- {
- new tmp = 2;
- year = 1970;
- month = 1;
- Timestamp -= 172800;
- for(;;)
- {
- if(Timestamp >= 31536000)
- {
- year ++;
- Timestamp -= 31536000;
- tmp ++;
- if(tmp == 4)
- {
- if(Timestamp >= 31622400)
- {
- tmp = 0;
- year ++;
- Timestamp -= 31622400;
- }
- else break;
- }
- }
- else break;
- }
- for(new i = 0; i < 12; i ++)
- {
- if(Timestamp >= MonthTimes[i][2 + IsLeapYear(year)])
- {
- month ++;
- Timestamp -= MonthTimes[i][2 + IsLeapYear(year)];
- }
- else break;
- }
- day = 1 + (Timestamp / 86400);
- Timestamp %= 86400;
- hour = HourGMT + (Timestamp / 3600);
- Timestamp %= 3600;
- minute = MinuteGMT + (Timestamp / 60);
- second = (Timestamp % 60);
- if(minute > 59)
- {
- minute = 0;
- hour ++;
- }
- if(hour > 23)
- {
- hour -= 24;
- day ++;
- }
- if(day > MonthTimes[month][IsLeapYear(year)])
- {
- day = 1;
- month ++;
- }
- if(month > 12)
- {
- month = 1;
- year ++;
- }
- return 1;
- }
- stock DateToTimestamp(str[11])
- {
- new date[3];
- if(!sscanf(str,"p<"#SPLITTER">ddd",date[0],date[1],date[2]))
- {
- new total = 0, tmp = 0;
- total += date[0] * 86400;
- if(date[1] == 2 && date[0] < 29) tmp = ((date[2] - 1968) / 4 - 2);
- else tmp = ((date[2] - 1968) / 4 - 1);
- total += tmp * 31622400;
- total += (date[2] - 1970 - tmp) * 31536000;
- for(new i = 1; i < date[1]; i ++) total += MonthTimes[i][0 + IsLeapYear(date[2])] * 86400;
- return total;
- }
- else return -1;
- }
- stock GetFormattedDate(timestamp)
- {
- new year, month, day, hour, minute, second, dest[40];
- TimestampToDate(timestamp, year, month, day, hour, minute, second, 1, 0);
- format(dest, sizeof(dest), "%02d.%02d.%d %02d:%02d:%02d", day, month, year, hour, minute, second);
- return dest;
- }
- stock GetRelativeDate(timestamp)
- {
- new dest[40];
- if(timestamp == 0) return format(dest, sizeof(dest), "Nigdy"), dest;
- else
- {
- new year, month, day, hour, minute, second, t_year, t_month, t_day, t_hour, t_minute, t_second;
- TimestampToDate(timestamp, t_year, t_month, t_day, t_hour, t_minute, t_second, 1, 0);
- TimestampToDate(gettime(), year, month, day, hour, minute, second, 1, 0);
- if(t_year == year && t_month == month && t_day == day) return format(dest, sizeof(dest), "dziś, %02d:%02d", t_hour, t_minute), dest;
- TimestampToDate(gettime()-86400, year, month, day, hour, minute, second, 1, 0);
- if(t_year == year && t_month == month && t_day == day) return format(dest, sizeof(dest), "wczoraj, %02d:%02d", t_hour, t_minute), dest;
- return format(dest, sizeof(dest), "%02d.%02d.%02d, %02d:%02d", t_day, t_month, t_year, t_hour, t_minute), dest;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement