- package App::WRT::Date;
-
- use strict;
- use warnings;
-
- use base qw(Exporter);
- our @EXPORT_OK = qw(iso_date get_mtime month_name);
-
- use POSIX qw(strftime);
-
- =head1 NAME
-
- App::WRT::Date - a small collection of date utility functions
-
- =head2 FUNCTIONS
-
- =over
-
- =item iso_date($time)
-
- Return an ISO 8601 date string for the given epoch time.
-
- =cut
-
- sub iso_date {
- my ($time) = @_;
- return strftime("%Y-%m-%dT%H:%M:%SZ", localtime($time));
- }
-
- =item get_mtime(@filenames)
-
- Return one or more mtimes for a given list of files.
-
- =cut
-
- sub get_mtime {
- my (@filenames) = @_;
-
- my @mtimes;
- for my $filename (@filenames) {
- #my( $dev, $ino, $mode, $nlink, $uid, $gid, $rdev, $size,
- # $atime, $mtime, $ctime, $blksize, $blocks )
- # = stat( $filename );
-
- push @mtimes, (stat $filename)[9];
- }
-
- # return a list if we've got more than one, a scalar
- # otherwise. is this evil? or even necessary?
- if (@mtimes > 1) {
- return @mtimes;
- } else {
- return $mtimes[0];
- }
- }
-
- =item month_name($number)
-
- Turn numeric months into English names.
-
- =cut
-
- {
- # "Null" is here so that $month_name[1] corresponds to January, etc.
- my @months = qw(Null January February March April May June
- July August September October November December);
-
- sub month_name {
- my ($number) = @_;
- return $months[$number];
- }
- }
-
- =back
-
- =cut
-
- 1;
|