[Webinar] Streamline your web hosting managementRegister Today

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 279
  • Last Modified:

Time culculation

Are there simple way to calculate number days passed after certain date.
E.g. after May 11 1955
0
desktop2
Asked:
desktop2
  • 3
  • 3
1 Solution
 
rj2Commented:
#!/usr/bin/perl
use Date::Calc qw( Date_to_Days );
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
print "Days: ",Date_to_Days($year+1900,$mon,$mday) - Date_to_Days(1955,5,11);

0
 
rj2Commented:
There should be a "+1" on the month

#!/usr/bin/perl
use Date::Calc qw( Date_to_Days );
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
print "Days: ",Date_to_Days($year+1900,$mon+1,$mday) - Date_to_Days(1955,5,11);

0
 
desktop2Author Commented:
Got an error :-(

Can't locate Date/Calc.pm in @INC (@INC contains: /usr/lib/perl5/i386-linux/5.00405 /usr/lib/perl5 /usr/lib/perl5/site_perl/i386-linux /usr/lib/perl5/site_perl .)
0
Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
rj2Commented:
Download and install the module Date::Calc

http://www.cpan.org/authors/id/STBEY/Date-Calc-5.0.tar.gz

Check this link for info if you don't know to install module from CPAN

http://www.perldoc.com/perl5.6.1/pod/perlfaq8.html#How-do-I-install-a-module-from-CPAN-
0
 
desktop2Author Commented:
I have a problem to install the module since this script is running on remote service where I do not have access. Is it possible to do it without additional module?
0
 
ozoCommented:
sub jd {
    use integer;
    my($y,$m,$d) = @_;
    return ( 1461 * ( $y + 4800 + ( $m - 14 ) / 12 ) ) / 4 +
    ( 367 * ($m - 2 - 12 * ( ( $m - 14 ) / 12 ) ) ) / 12 -
    ( 3 * ( ( $y + 4900 + ( $m - 14 ) / 12 ) / 100 ) ) / 4 +
    $d - 32075;
}
my ($m,$d,$y) = (${{Jan=>1,Feb=>2,Mar=>3,Apr=>4,May=>5,Jun=>6,Jul=>7,Aug=>8,Sep=>9,Oct=>10,Nov=>11,Dec=>12}}{May},11,1955);
my $jd0 = jd($y,$m,$d);
($y,$m,$d) = (localtime)[5,4,3];
my $jd1 = jd(1900+$y,1+$m,$d);
print $jd1-$jd0,"\n";
0
 
desktop2Author Commented:
It is working
0

Featured Post

Hire Technology Freelancers with Gigs

Work with freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely, and get projects done right.

  • 3
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now