1#!/usr/bin/perl
2use strict;
3use warnings;
4
5use Time::Moment;
6
7my $tm = Time::Moment->now;
8
9sub output {
10    my ($type, $basic, $extended) = @_;
11
12    print "\nCombinations of $type date and time of day:\n";
13
14    print "\nBasic format:          Example:\n";
15    foreach my $format (@$basic) {
16        printf "%-22s %s\n", $format, $tm->strftime($format);
17    }
18
19    print "\nExtended format:       Example:\n";
20    foreach my $format (@$extended) {
21        printf "%-22s %s\n", $format, $tm->strftime($format);
22    }
23}
24
25{
26    my @basic = qw(
27        %Y%m%dT%H%M%S%z
28        %Y%m%dT%H%M%S%f%z
29        %Y%m%dT%H%M%z
30    );
31    my @extended = qw(
32        %Y-%m-%dT%H:%M:%S%Z
33        %Y-%m-%dT%H:%M:%S%f%Z
34        %Y-%m-%dT%H:%M%Z
35    );
36    output('calendar', \@basic, \@extended);
37}
38
39{
40    my @basic = qw(
41        %Y%jT%H%M%S%z
42        %Y%jT%H%M%S%f%z
43        %Y%jT%H%M%z
44    );
45    my @extended = qw(
46        %Y-%jT%H:%M:%S%Z
47        %Y-%jT%H:%M:%S%f%Z
48        %Y-%jT%H:%M%Z
49    );
50    output('ordinal', \@basic, \@extended);
51}
52
53{
54    my @basic = qw(
55        %GW%V%uT%H%M%S%z
56        %GW%V%uT%H%M%S%f%z
57        %GW%V%uT%H%M%z
58    );
59    my @extended = qw(
60        %G-W%V-%uT%H:%M:%S%Z
61        %G-W%V-%uT%H:%M:%S%f%Z
62        %G-W%V-%uT%H:%M%Z
63    );
64    output('week', \@basic, \@extended);
65}
66