Advertisement
Guest User

Untitled

a guest
Oct 19th, 2019
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.17 KB | None | 0 0
  1. new MonthTimes[12][4] =
  2. {
  3. { 31, 31, 2678400, 2678400 },
  4. { 28, 29, 2419200, 2505600 },
  5. { 31, 31, 2678400, 2678400 },
  6. { 30, 30, 2592000, 2592000 },
  7. { 31, 31, 2678400, 2678400 },
  8. { 30, 30, 2592000, 2592000 },
  9. { 31, 31, 2678400, 2678400 },
  10. { 31, 31, 2678400, 2678400 },
  11. { 30, 30, 2592000, 2592000 },
  12. { 31, 31, 2678400, 2678400 },
  13. { 30, 30, 2592000, 2592000 },
  14. { 31, 31, 2678400, 2678400 }
  15. };
  16.  
  17. stock IsLeapYear(year)
  18. {
  19. if(year % 4 == 0) return true;
  20. else return false;
  21. }
  22.  
  23. stock TimestampToDate(Timestamp, &year, &month, &day, &hour, &minute, &second, HourGMT, MinuteGMT = 0)
  24. {
  25. new tmp = 2;
  26. year = 1970;
  27. month = 1;
  28. Timestamp -= 172800; // Delete two days from the current timestamp. This is necessary, because the timestamp retrieved using gettime() includes two too many days.
  29. for(;;)
  30. {
  31. if(Timestamp >= 31536000)
  32. {
  33. year ++;
  34. Timestamp -= 31536000;
  35. tmp ++;
  36. if(tmp == 4)
  37. {
  38. if(Timestamp >= 31622400)
  39. {
  40. tmp = 0;
  41. year ++;
  42. Timestamp -= 31622400;
  43. }
  44. else break;
  45. }
  46. }
  47. else break;
  48. }
  49. for(new i = 0; i < 12; i ++)
  50. {
  51. if(Timestamp >= MonthTimes[i][2 + IsLeapYear(year)])
  52. {
  53. month ++;
  54. Timestamp -= MonthTimes[i][2 + IsLeapYear(year)];
  55. }
  56. else break;
  57. }
  58. day = 1 + (Timestamp / 86400);
  59. Timestamp %= 86400;
  60. hour = HourGMT + (Timestamp / 3600);
  61. Timestamp %= 3600;
  62. minute = MinuteGMT + (Timestamp / 60);
  63. second = (Timestamp % 60);
  64. if(minute > 59)
  65. {
  66. minute = 0;
  67. hour ++;
  68. }
  69. if(hour > 23)
  70. {
  71. hour -= 24;
  72. day ++;
  73. }
  74. if(day > MonthTimes[month][IsLeapYear(year)])
  75. {
  76. day = 1;
  77. month ++;
  78. }
  79. if(month > 12)
  80. {
  81. month = 1;
  82. year ++;
  83. }
  84. return true;
  85. }
  86.  
  87. stock DateToTimestamp(str[11])
  88. {
  89. new date[3]; // date[0] = day date[1] = month date[2] = year
  90. if(!sscanf(str,"p<"#SPLITTER">ddd",date[0],date[1],date[2]))
  91. {
  92. new total = 0, tmp = 0;
  93. total += date[0] * 86400;
  94. if(date[1] == 2 && date[0] < 29) tmp = ((date[2] - 1968) / 4 - 2);
  95. else tmp = ((date[2] - 1968) / 4 - 1);
  96. total += tmp * 31622400;
  97. total += (date[2] - 1970 - tmp) * 31536000;
  98. for(new i = 1; i < date[1]; i ++) total += MonthTimes[i][0 + IsLeapYear(date[2])] * 86400;
  99. return total;
  100. }
  101. else return -1;
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement