mktime and DST.

G

Gore

hi,

I tried the following piece of code
long sec = -1;
struct tm date;
date.tm_year = 1995 - 1900;
date.tm_mon = 7 - 1;
date.tm_mday = 16;
date.tm_hour = 0;
date.tm_min = 0;
date.tm_sec = 0;

date.tm_isdst = 0;

sec = mktime(&date);

The value returned by mktime when tm_isdst is set to 0 is different
from the value returned by mktime when tm_isdst is set to -1 or 1. Why
is that?
The date given is 16th July 1995 00:00:00.

The compiler is used MSVC 6.0 Service pack 5.
Observed the same behavious on Sun Solaris.
My machine has the us-pacific time set ( GMT - 8 Hours ).

Mihir
 
R

Richard Bos

I tried the following piece of code
long sec = -1;
struct tm date;
date.tm_year = 1995 - 1900;
date.tm_mon = 7 - 1;
date.tm_mday = 16;
date.tm_hour = 0;
date.tm_min = 0;
date.tm_sec = 0;

date.tm_isdst = 0;

sec = mktime(&date);

The value returned by mktime when tm_isdst is set to 0 is different
from the value returned by mktime when tm_isdst is set to -1 or 1. Why
is that?
The date given is 16th July 1995 00:00:00.

Because your system thinks that DST is in place at that date and time in
your time zone. It certainly is in my timezone at that date.
tm_isdtd==0 means "I know DST is not in effect. Compute this timestamp
assuming that it isn't." tm_isdst>0 means "I know DST is in effect.
Compute this timestamp assuming that it is." tm_isdst<0 means "I don't
know whether DST is in effect now. Please determine this for me, then
compute this timestamp with the determined DST setting."
If the computer thinks DST is in effect, then yes, tm_isdst==-1 would
give the same result as tm_isdst==1. Had it thought DST were not in
effect, tm_isdst==-1 would give the same result as tm_isdtd==0.

Richard
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Members online

Forum statistics

Threads
473,995
Messages
2,570,236
Members
46,821
Latest member
AleidaSchi

Latest Threads

Top