Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling

Date::Calc DST - is this a bug?

by fbicknel (Beadle)
on Dec 11, 2012 at 20:57 UTC ( #1008401=perlquestion: print w/replies, xml ) Need Help??
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? :)

Replies are listed 'Best First'.
Re: Date::Calc DST - is this a bug?
by ww (Archbishop) on Dec 11, 2012 at 23:06 UTC
Re: Date::Calc DST - is this a bug?
by fbicknel (Beadle) on Dec 11, 2012 at 21:01 UTC
    How about that. Read a little further and Localtime() provides the same flag. But this time it works as expected.

    Sorry, I jumped on the first thing I found, now.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://1008401]
Approved by ww
[davido]: then it reads from /etc/passwd to decide who my uid is.
[davido]: sorry, typed that before you asked me to disable proc
[davido]: but you stumped me; don't know how to disable proc.
[tye]: I don't know if you can just dismount, but I thought so.
[davido]: yeah, umount -f isn't powerful enough.
[tye]: probably something in the init subsystem that does the mounting that you could disable and reboot.
davido needs to close laptop to board flight home from yapc.
[davido]: I'll look into it in a few hours probably.
[davido]: when i do get to that point I think I'll do it in a vm snapshot just in case. :)
[oiskuu]: tye, you were right: loginuid/sessionid are part of task struct if compiled with AUDITSYSCALL. I have some doubts if you should actually depend on that feature.

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (5)
As of 2017-06-23 20:06 GMT
Find Nodes?
    Voting Booth?
    How many monitors do you use while coding?

    Results (555 votes). Check out past polls.