fbicknel has asked for the wisdom of the Perl Monks concerning the following question:
See my reply to myself.... but I'll leave this here as a model of what not to do. *blush*
Is this a bug or is it not documented properly?
Documentation for Gmtime() says:
The daylight savings time flag ("$dst") will be "-1" if this information is not available on your system, "0" for no daylight savings time (i.e., winter time) and "1" when daylight savings time is in effect.
This isn't clear: if it means "dst is in effect NOW on your system", then it accurately depicts what happens when you try this code:
#!/usr/bin/perl use Date::Calc qw (:all); $summer_time = Mktime (2012, 7, 3, 1, 48, 0); $winter_time = Mktime (2012, 12, 3, 1, 48, 0); ($year,$month,$day, $hour,$min,$sec, $doy,$dow,$dst) = Gmtime ($summer_time); print "Summer: $year,$month,$day,$hour,$min,$sec,$doy,$dow,$dst\n"; ($year,$month,$day,$hour,$min,$sec,$doy,$dow,$dst) = Gmtime ($winter_time); print "Winter: $year,$month,$day,$hour,$min,$sec,$doy,$dow,$dst\n"; __END__ Results: Summer: 2012,7,3,5,48,0,185,2,0 Winter: 2012,12,3,6,48,0,338,1,0
Note the last $dst value in each list returned is always 0. My guess is that if I wait about 6 months and try again, it will always return 1.
What I was hoping for was a flag that was set based on the time requested, as apparently all the other fields in the input portray.
I mean, what good would it do if I asked for Gmtime ($winter_time) and it returned the current year instead of the year I asked for? :)
Back to
Seekers of Perl Wisdom