Bill, it appears to have to do with it pick the time not being populated, and 
it picking up the date from yesterday.

I added some lines to test this theory.  Try running the code below without an 
argument, and then with an argument.

Tim


#!/usr/bin/perl

use strict;
use warnings;
use Time::Local;

my ($time, $month, $day, $year, $seconds, $minutes, $hours, $wday, $yday, 
$isdst);

my $start_date = '11/30/2012';

print "$start_date \n";

($month, $day, $year) = split(/\//, $start_date);

#Added this to populate the time
if (defined($ARGV[0])) {
  print "Populating the time\n";
  $seconds = 30;
  $minutes = 30;
  $hours = 11;
}

print $time = timegm($seconds, $minutes, $hours, $day, $month-1, $year-1900);

print "\n";

($seconds, $minutes, $hours, $day, $month, $year, $wday, $yday, $isdst) = 
localtime($time);

$month++;

$year = ($year+1900);

print "$month/$day/$year \n";



-----Original Message-----
From: "Bill Stephenson" <bi...@ezinvoice.com>
Sent: Friday, January 18, 2013 3:13pm
To: "Perl Beginners" <beginners@perl.org>
Subject: converting dates to epoch seconds and back

When converting DMYHMS to Epoch Seconds and back I get cheated out of a day. 
Why?

Bill

--

#!/usr/bin/perl

use strict;
use warnings;
use Time::Local;

my ($time, $month, $day, $year, $seconds, $minutes, $hours, $wday, $yday, 
$isdst);

my $start_date = '11/30/2012';

print "$start_date \n";

($month, $day, $year) = split(/\//, $start_date);

print $time = timegm($seconds, $minutes, $hours, $day, $month-1, $year-1900);

print "\n";

($seconds, $minutes, $hours, $day, $month, $year, $wday, $yday, $isdst) = 
localtime($time);
    
$month++;

$year = ($year+1900);

print "$month/$day/$year \n";

# output:
# 11/30/2012 
# 1354233600
# 11/29/2012
-- 
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/





--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to