datefmt: Define 1 year as 365.2425 days instead of 365.25
[sunny256-utils.git] / ep
blob646e3779d2e876def167857a670e4f90785ded96
1 #!/usr/bin/env perl
3 #==========================================================================
4 # ep
5 # File ID: e8bf0ac2-5d38-11df-bd44-90e6ba3022ac
7 # Konverterer tekststrenger som ser ut som antall sekunder siden
8 # 1970-01-01 00:00:00 GMT om til leselig datoformat. Konverterer alle tall
9 # som har 9 og 10 siffer. Med andre ord funker det greit fra og med
10 # 1973-03-03 09:46:40 GMT til 2286-11-20 17:46:39 GMT.
11 #==========================================================================
13 use strict;
14 use warnings;
15 use Getopt::Std;
17 our ($opt_D, $opt_d, $opt_h, $opt_l, $opt_s, $opt_t) =
18 ( "T", "-", 0, 0, 0, ":");
19 getopts('D:d:hlst:');
21 $| = 1;
23 if ($opt_h) {
24 print(<<END);
26 Syntax: $0 [valg] [filer [...]]
28 Konverterer tekststrenger som ser ut som antall sekunder siden
29 1970-01-01 00:00:00 GMT om til mer leselig datoformat. Konverterer alle
30 tall som har 9 og 10 siffer. Med andre ord funker det greit fra og med
31 1973-03-03 09:46:40 GMT til 2286-11-20 17:46:39 GMT.
33 Standard format er "åååå-mm-ddTtt:mm:ssZ".
35 Valg:
37 -h Hjelpings.
38 -l Skriv datoen som lokal tid istedenfor GMT.
39 -s Kortformat: "ååååmmddTttmmssZ" eller "ååååmmddTttmmss" alt ettersom
40 hvor lokal man skal være.
42 Skilletegn kan spesifiseres: ååååAmmAddBttCmmCss
44 -d A (Standard: "$opt_d")
45 -D B (Standard: "$opt_D")
46 -t C (Standard: "$opt_t")
48 END
49 exit(0);
52 my @TA;
54 my ($d_sep, $D_sep, $t_sep) = $opt_s ? ("", "T", "") : ($opt_d, $opt_D, $opt_t);
56 # Ligger dobbelt opp for å få opp farta litt.
57 if ($opt_l) {
58 while (<>) {
59 s/\b(\d{9,10})\b/@TA = localtime($1),sprintf("%04u$d_sep%02u$d_sep%02u$D_sep%02u$t_sep%02u$t_sep%02u", $TA[5]+1900, $TA[4]+1, $TA[3], $TA[2], $TA[1], $TA[0])/ge;
60 print $_;
62 } else {
63 while (<>) {
64 s/\b(\d{9,10})\b/@TA = gmtime($1),sprintf("%04u$d_sep%02u$d_sep%02u$D_sep%02u$t_sep%02u$t_sep%02uZ", $TA[5]+1900, $TA[4]+1, $TA[3], $TA[2], $TA[1], $TA[0])/ge;
65 print $_;
69 # End of file ep