I have a problem, my pol systime is totally wrong, it thinks its 1970 something...
What could that be due to? And how to fix.
Systime is wrong?
Re: Systime is wrong?
is using a standard in many languages
http://java.sun.com/j2se/1.4.2/docs/api ... /Date.html
"Date(long date) Allocates a Date object and initializes it to represent the specified number of milliseconds since the standard base time known as "the epoch", namely January 1, 1970, 00:00:00 GMT."
old script.
can be used in an include "function"
or command point "program"
http://java.sun.com/j2se/1.4.2/docs/api ... /Date.html
"Date(long date) Allocates a Date object and initializes it to represent the specified number of milliseconds since the standard base time known as "the epoch", namely January 1, 1970, 00:00:00 GMT."
old script.
can be used in an include "function"
or command point "program"
Code: Select all
use os;
use uo;
program date(character)
var year := {2678400,2419200,2678400,2592000,2678400,2592000,2678400,2678400,2592000,2678400,2592000,2678400};
var leap_year := {2678400,2505600,2678400,2592000,2678400,2592000,2678400,2678400,2592000,2678400,2592000,2678400};
var date := struct{"second":=0,"minute":=0,"hour":=0,"day":=1,"month":=1,"year":=1970};
var time := polcore().systime;
//time := time - 3*60*60; com Fuso horário do brasil + 3 horas
var quociente := cint(time / 126230400);// 126230400 é igual a 3 anos normais + 1 bissexto, transformados em segundos
time := ( time - ( quociente * 126230400 )) ;// time = quantos 4 anos cabem no total
date.year := ( date.year + quociente*4 );
while(time >= 31536000)
if(date.year % 4 == 0)
date.year := ( date.year + 1 );
time := ( time - 31622400 );
else
date.year := ( date.year + 1 );
time := ( time - 31536000 );
endif
endwhile
if(date.year % 4 == 0)
while(time >= leap_year[date.month] )
time := ( time - leap_year[date.month] );
date.month := ( date.month + 1 );
endwhile
else
while(time >= year[date.month] )
time := ( time - year[date.month] );
date.month := ( date.month + 1 );
endwhile
endif
quociente := cint( time / 86400 );
time := ( time - ( quociente * 86400 )) ;
date.day := (date.day + quociente );
quociente := cint( time / 3600 );
time := ( time - ( quociente * 3600 )) ;
date.hour := (date.hour + quociente );
quociente := cint( time / 60 );
date.minute := (date.minute + quociente );
date.second := ( time - ( quociente * 60 )) ;
SendSysMessage( character," Clock "+date.hour+":"+date.minute+":"+date.second, 3, 33 );
SendSysMessage( character," Date "+date.month+"/"+date.day+"/"+date.year, 3, 33 );
endprogramRe: Systime is wrong?
Well the problem is that is was working properly, and for no reason just stopped working and reset to 1970 something. Is it the core that handles it? Because I haven't found an actual function for the pol.systime().
Re: Systime is wrong?
PolCore().systime is a direct interface for time(NULL). So you should check your system.
Re: Systime is wrong?
That's the strange thing. The system clock is fine, but the polcore time is all messed.Turley wrote:PolCore().systime is a direct interface for time(NULL). So you should check your system.
I am using the old 095 core though.
Re: Systime is wrong?
Are you running pol (32bit) on a 64bit host?
Maybe (maybe) the system is representing the time with too much bytes and pol can't understand it properly.
Just guessing.
Maybe (maybe) the system is representing the time with too much bytes and pol can't understand it properly.
Just guessing.
Re: Systime is wrong?
Nope, seems to be a 32bit host.Gnafu wrote:Are you running pol (32bit) on a 64bit host?
Maybe (maybe) the system is representing the time with too much bytes and pol can't understand it properly.
Just guessing.