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/