Advertisement
luisgustavomiki

[INC] GibDate

Sep 13th, 2011
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 2.39 KB | None | 0 0
  1. #define TIME_ZONE (-3)
  2.  
  3. stock date(timestamp,&ryear=0,&rmonth=0,&rday=0,&rhour=0,&rmins=0,&rsec=0)
  4. {
  5.     new year = 1970, day = 0, month = 0, hour = 0, mins = 0, sec = 0;
  6.     new days_of_month[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
  7.     //new returnstring[21];
  8.     while(timestamp > 31622400)
  9.     {
  10.         timestamp -= 31536000;
  11.         if(((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) timestamp -= 86400;
  12.         ++ year;
  13.     }
  14.     if(((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) days_of_month[1] = 29;
  15.     else days_of_month[1] = 28;
  16.     while(timestamp > 86400)
  17.     {
  18.         timestamp -= 86400;
  19.         ++ day;
  20.         if(day == days_of_month[month]) day = 0, ++ month;
  21.     }
  22.     while(timestamp > 60)
  23.     {
  24.         timestamp -= 60;
  25.         ++ mins;
  26.         if(mins == 60) mins = 0, ++ hour;
  27.     }
  28.     sec = timestamp;
  29.     ryear = year;
  30.     rmonth = month+1;
  31.     rday = day+1;
  32.  
  33.     rhour = hour + TIME_ZONE;
  34.     rmins = mins;
  35.     rsec =  sec;
  36.     //format(returnstring, 21, "%02d/%02d/%02d %02d:%02d:%02d", year, month + 1, day + 1, hour, mins, sec);
  37.     //return returnstring;
  38.     return 1;
  39. }
  40.  
  41. stock mktime(hour, minute, second, day, month, year) // By: Y_Less
  42. {
  43.     static const
  44.         days_of_month[12] =
  45.         {
  46.             0   * 86400, 31  * 86400, 59  * 86400,
  47.             90  * 86400, 120 * 86400, 151 * 86400,
  48.             181 * 86400, 212 * 86400, 243 * 86400,
  49.             273 * 86400, 304 * 86400, 334 * 86400
  50.         };
  51.     static
  52.         lMonth, lYear, lMonthS, lYearS;
  53.     if (year != lYear)
  54.     {
  55.         year -= 1970;
  56.         lYearS = year * 31536000;
  57.         lYearS += 86400 * (year / 4);
  58.         year += 70;
  59.         lYearS -= (year / 100) * 86400;
  60.         year += 300;
  61.         lYearS += (year / 400) * 86400;
  62.         year += 1600; // 1970 - 370
  63.         lYear = year;
  64.     }
  65.     if (month != lMonth)
  66.     {
  67.         --month;
  68.         lMonthS = days_of_month[month];
  69.         if (IsLeapYear(year) && month >= 2)
  70.         {
  71.             lMonthS += 86400;
  72.         }
  73.         lMonth = month + 1;
  74.     }
  75.     day = (day - 1) * 86400;
  76.     hour = ( hour - TIME_ZONE ) * 3600;
  77.     minute = minute * 60;
  78.     return lYearS + lMonthS + day + hour + minute + second;
  79. }
  80.  
  81.  
  82.  
  83. stock IsLeapYear(year)
  84. {
  85.     if ( ( year % 4 ) == 0 &&
  86.         (( year % 100 ) != 0 || ( year % 400 ) == 0)
  87.     ) return 1;
  88.     return 0;
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement