> -----Original Message-----
> From: Vibhu Mohindra [mailto:[EMAIL PROTECTED]]
> Sent: Thursday, August 22, 2002 2:03 PM
> To: [EMAIL PROTECTED]
> Subject: Re: [PATCH] SMPP validity
> 
> 
> If the issue is solely with locatime_r(), but using localtime() and
> the returned struct's tm_gmtoff is alright then let's do that rather

No it's not. that was the point of my previous post. using tm_gmtoff is
a much word portability braker then using localtime_r().

> >  gmtime = gw_gmtime(time(NULL));
> >  localtime = gw_localtime(time(NULL));
> >  gwqdiff = ((localtime.tm_hour - gmtime.tm_hour) * 4)
> >                   + ((localtime.tm_min - gmtime.tm_min) / 15);
> > +gwqdiff = gwqdiff>12?gwqdiff-24:gwqdiff;
> 
> I'm actually +6 UTC. However early in the morning it detected me as
> -18 UTC. Not +18, so the algorithm given won't work in this case, or
> for other cases east of Greenwich. Also it doesn't take into account

I may be wrong (like I said - didn't test it), but in that case, it's
pretty simple : add also -
gwqdiff = gwqdiff<-12?gwqdiff+24:gwqdiff;
or even remove the previous statement.

> daylight savings (I admit I don't know much about daylight 
> savings, not
> living in a country where they apply). 

I do, and don't know much about DST too - except that said method should
also handle that, as gm_time is always non DST, and localtime() should
return the current time stamp, DST applied.

> In that case the calculation to get the difference in minutes may be
> more like
> 
> (local_tm.tm_year - gmt_tm.tm_year) * 365*24*60 +
> (local_tm.tm_yday - gmt_tm.tm_yday) * 24*60 +
> (local_tm.tm_hour - gmt_tm.tm_hour) * 60 +
> (local_tm.tm_min  - gmt_tm.tm_min );

Why would I want to handle years and days when I only need the hour
difference ?

--
Oded Arbel
m-Wise mobile solutions
[EMAIL PROTECTED]

+972-9-9581711 (116)
+972-67-340014

::..
"Don't you go blame the movies Sid, movies don't make psychos,
movies make psychos more creative"
        -- from "Scream"

Reply via email to