http://www.perlmonks.org?node_id=871981


in reply to Date and time difference

Hour 24? That's odd. You sure you don't want 10111700? OTOH, while parts of the world where using 24 hours in a day in the year 10 AD, I'm not quite sure they numbered their hours up to 23 (or rather 24, as 0 wasn't so common then) then.

Anyway, to answer your question, there's no special built in function for that.

But there are a gazillion modules on CPAN dealing with dates and times.

Replies are listed 'Best First'.
Re^2: Date and time difference
by soubalaji (Sexton) on Nov 17, 2010 at 12:25 UTC
    Hours will be like 24 hours.
    yes for 24 hours i want that to be '00' only and the day should be next day.
    currently we don't have right to install any modules from cpan. we can use only input modules in perl.
      Well, if you can't install any CPAN modules, you could use a module that comes bundled with perl, namely POSIX. The below example code shows how to create a calendar time for December 12, 1995, at 10:30 am:

      $time_t = POSIX::mktime( 0, 30, 10, 12, 11, 95 ); print "Date = ", POSIX::ctime($time_t);

      Presumably you could create 2 calendar times and subtract one from the other using difftime, which will give you the difference in seconds - format as required for display.

      UPDATE (small example):

      use strict; use warnings; use POSIX qw(mktime difftime ctime); my $previous = '10111623'; my $current = '10111705'; my $time1 = mktime( 0, 0, $4, $3, $2 - 1, $1 + 100 ) if $previous =~ m +/(\d\d)(\d\d)(\d\d)(\d\d)/; my $time2 = mktime( 0, 0, $4, $3, $2 - 1, $1 + 100 ) if $current =~ m/ +(\d\d)(\d\d)(\d\d)(\d\d)/; printf("%s - %s = %d seconds\n", ctime($time2), ctime($time1), difftim +e($time2, $time1));

      Output:

      Wed Nov 17 05:00:00 2010 - Tue Nov 16 23:00:00 2010 = 21600 seconds
      currently we don't have right to install any modules from cpan. we can use only input modules in perl.
      That's a (silly) political problem not for us to solve. Besides, you can always copy the code from the module and put it in your code (assuming you have the right to install that - if they're consistent, you shouldn't be allowed to install/run your code, it not being part of "perl").