From c96d19fca5094995d02911dd293e10e716ed7ce3 Mon Sep 17 00:00:00 2001 From: dakkar Date: Mon, 8 Mar 2010 16:57:13 +0000 Subject: first idea --- lib/DateTime/Format/GeekTime.pm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 lib/DateTime/Format/GeekTime.pm (limited to 'lib/DateTime/Format/GeekTime.pm') diff --git a/lib/DateTime/Format/GeekTime.pm b/lib/DateTime/Format/GeekTime.pm new file mode 100644 index 0000000..534e86a --- /dev/null +++ b/lib/DateTime/Format/GeekTime.pm @@ -0,0 +1,32 @@ +package DateTime::Format::GeekTime; +use strict; +use warnings; +use DateTime; +use vars '$VERSION'; + +$VERSION='1.000_001'; +$VERSION=eval $VERSION; + +sub parse_datetime { + my ($self,$string)=@_; +} + +sub format_datetime { + my ($self,$dt)=@_; + + my $start_of_day=$dt->clone->truncate(to=>'day')->set_time_zone('UTC'); + my $start_of_year=$dt->clone->truncate(to=>'year')->set_time_zone('UTC'); + + my $seconds=$dt->subtract_datetime_absolute($start_of_day)->in_units('seconds'); + my $days=$dt->subtract_datetime_absolute($start_of_year)->in_units('days'); + + $seconds*=(65_536/86_400); + + my $chr=eval { chr($seconds) }; + if (!defined $chr) {$chr=''} + else {$chr=" $chr"}; + + return sprintf '0x%04X 0x%04X%s',$seconds,$days,chr($seconds); +} + +1; -- cgit v1.2.3