]> git.lizzy.rs Git - plan9front.git/blob - sys/src/cmd/date.c
date: remove '-m' flag
[plan9front.git] / sys / src / cmd / date.c
1 #include <u.h>
2 #include <libc.h>
3
4 enum {
5         Nsec = 1000*1000*1000,
6 };
7
8 void
9 usage(void)
10 {
11         fprint(2, "usage: date [-itunm] [-f fmt] [seconds]\n");
12         exits("usage");
13 }
14
15 void
16 main(int argc, char *argv[])
17 {
18         int nflg, uflg;
19         char *fmt;
20         vlong s, ns;
21         Tzone *tz;
22         Tm tm;
23
24         nflg = 0;
25         uflg = 0;
26         tz = nil;
27         fmt =  "WW MMM _D hh:mm:ss ZZZ YYYY";
28         tmfmtinstall();
29
30         ARGBEGIN{
31         case 'n':       nflg = 1;                               break;
32         case 'u':       uflg = 1;                               break;
33         case 't':       fmt = "YYYY-MM-DDThh:mm:ssZZ";          break;
34         case 'i':       fmt = "YYYY-MM-DD";                     break;
35         case 'f':       fmt = EARGF(usage());                   break;
36         default:        usage();
37         }ARGEND
38
39         s = 0;
40         ns = 0;
41         switch(argc) {
42         case 0:
43                 ns = nsec();
44                 s = ns/Nsec;
45                 ns = ns%Nsec;
46                 break;
47         case 1:
48                 s = strtoll(argv[0], nil, 0);
49                 ns = 0;
50                 break;
51         default:
52                 usage();
53                 break;
54         }
55
56         if(!uflg && (tz = tzload("local")) == nil)
57                 sysfatal("timezone: %r");
58         if(tmtimens(&tm, s, ns, tz) == nil)
59                 sysfatal("now: %r");
60
61         if(nflg)
62                 print("%lld\n", tmnorm(&tm));
63         else
64                 if(print("%τ\n", tmfmt(&tm, fmt)) == -1)
65                         sysfatal("%r");
66         exits(0);
67 }