NAME
Time::TAI64 - support for Temps Atomique International
SYNOPSIS
use Time::TAI64;
printf "%4d-%02d-%02d %02d:%02d:%02d.%09d\n",
tai64nlocal('400000003c7c743a2121589c');
DESCRIPTION
This module provides support for the hiresolution and somewhat long lasting TAI time format. It's 64 bit and goes down to nanoseconds. At least, the TAI64N format does while TAI64 just goes to seconds.
This module provides a routine to convert from TAI back to a usable form. It will provide more functions as I get time to do things with them.
It's in XS since the operation to perform the conversion is not one of Perl's forte's and is really quite slow (well, my somewhat straight conversion from C to Perl performed quite badly). Other versions, including pure Perl, are provided in the benchmarks directory in the module distribution.
FUNCTIONS
my $str = caldate_fmt($year, $month, $day)
Given a year, month and day it returns an ISO formatted string representation of that date.
my ($year, $month, $day) = caldate_scan($str)
Given an ISO formatted string, or a string started with an ISO formatted date, ithis function returns the year, month and day. If used within a scalar context, it returns an arrayref of the elements (as a Time::TAI64::Caldate object).
my $mjd = caldate_mjd($year, $month, $day)
Returns the Modified Julian Day for the given date.
my ($year, $month, $day) = caldate_frommjd($mjd)
Returns the year, month, day triple fo the given Modified Julian Day.
($year, $month, $day) = caldate_normalise($year, $month, $day)
Normalises the values of year, month and day so that they are within their accepted ranges.
my ($year,$month,$day) = caldate_easter($year)
Returns the full date of Easter Sunday for the given year.
my ($secs, $nano) = tai64n($time)
Takes a 24 hex-digit number as input and returns the seconds and nanoseconds the time represents. Seconds are standard Unix style.
my @time = tai64nlocal($time)
Takes a 24 hex-digit number as input and returns the year, month, day, hour, min, sec and nanosecs that the number represents. All numbers are normalised (i.e. it will return 1998, not 98; and January is 1, not 0).
AUTHOR
Iain Truskett <spoon@cpan.org> http://eh.org/~koschei/
Please report any bugs, or post any suggestions, to either the mailing list at <cpan@dellah.anu.edu.au> (email <cpan-subscribe@dellah.anu.edu.au> to subscribe) or directly to the author at <spoon@cpan.org>
COPYRIGHT
Copyright (c) 2002 Iain Truskett. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
$Id: TAI64.pm,v 1.7 2002/03/12 17:54:57 koschei Exp $
ACKNOWLEDGEMENTS
DJB for writing libtai.