SA-MP Forums Archive
Timestamp functions - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Timestamp functions (/showthread.php?tid=294784)



Timestamp functions - C0dy09 - 03.11.2011

Hi all,

i despair with timestamps, i canґt find any solution for my problem.
Maybe you can help me

So I want to write 2 functions:

TimestampToDate(timestamp,&day,&week,&year,&second ,&minute,&hour)

RemainingTimeToTimestamp(timestamp,&RemDays,&RemWe eks,&RemYears,&RemSeconds,&RemMinutes,&RemHours)*

*This function means, if i have a timestamp maybe

1320320036 (03.11.2011 12:33:56)

and

1320320063 (03.11.2011 12:34:23)

So it returns 0days 0weeks 0years 27seconds 0minutes 0hours

etc.


Please help me,

I dont know how to write the functions, i spend a lot of time of searching posted functions but they donґt meet my wishes.

Cody09


Re: Timestamp functions - AndreT - 03.11.2011

These functions can be made in PAWN but as ****** said, all sorts of timezone/time calculations all around the world are very complex. That's why I suggest you refer to using the CTime library if you're looking to format for example.

pawn Код:
new tm <tmTime>, string[64];
localtime(Time:timestamp, tmTime);
strftime(string, sizeof(string), "%A %d %B %Y %H", tmTime);
printf("Output: %s", string);
To get the difference between 2 timestamps, you could create your own function. What it needs to do is calculate the difference in seconds (timestamps themselves) and then something like this:
pawn Код:
new difference = timestamp2 - timestamp1,
    days, hours, minutes;
while(difference >= 86400)
{
    difference -= 86400;
    days ++;
}
while(difference >= 3600)
{
    difference -= 3600;
    hours ++;
}
while(difference >= 60)
{
    difference -= 60;
    minutes ++;
}
seconds = difference;



Re: Timestamp functions - C0dy09 - 03.11.2011

hm ok, thank you