isodate in libc? revert every commit for great justice!

This commit is contained in:
cinap_lenrek 2012-09-01 14:12:29 +02:00
parent 0e41e0b7c5
commit 7f22b32e63
5 changed files with 9 additions and 86 deletions

View file

@ -328,8 +328,6 @@ extern double cputime(void);
extern long times(long*); extern long times(long*);
extern long tm2sec(Tm*); extern long tm2sec(Tm*);
extern vlong nsec(void); extern vlong nsec(void);
extern char* isotime(Tm*);
extern char* isodate(Tm*);
extern void cycles(uvlong*); /* 64-bit value of the cycle counter if there is one, 0 if there isn't */ extern void cycles(uvlong*); /* 64-bit value of the cycle counter if there is one, 0 if there isn't */

View file

@ -24,12 +24,6 @@ Report Greenwich Mean Time (GMT) rather than local time.
.B -n .B -n
Report the date as the number of seconds since the Report the date as the number of seconds since the
epoch, 00:00:00 GMT, January 1, 1970. epoch, 00:00:00 GMT, January 1, 1970.
.TP
.B -i
Report the date as ISO-8601 without time and timezone suffix.
.TP
.B -t
Report the date as ISO-8601 with time and timezone suffix.
.PP .PP
The conversion from Greenwich Mean Time to local time depends on the The conversion from Greenwich Mean Time to local time depends on the
.B $timezone .B $timezone

View file

@ -1,6 +1,6 @@
.TH CTIME 2 .TH CTIME 2
.SH NAME .SH NAME
ctime, localtime, gmtime, asctime, tm2sec, timezone, isodate, isotime \- convert date and time ctime, localtime, gmtime, asctime, tm2sec, timezone \- convert date and time
.SH SYNOPSIS .SH SYNOPSIS
.B #include <u.h> .B #include <u.h>
.br .br
@ -23,12 +23,6 @@ char* asctime(Tm *tm)
long tm2sec(Tm *tm) long tm2sec(Tm *tm)
.PP .PP
.B .B
char* isodate(Tm *tm)
.PP
.B
char* isotime(Tm *tm)
.PP
.B
/env/timezone /env/timezone
.SH DESCRIPTION .SH DESCRIPTION
.I Ctime .I Ctime
@ -90,13 +84,6 @@ if
is not is not
.BR GMT . .BR GMT .
.PP .PP
.I Isotime
converts a broken-down time to a date and timestamp according to ISO-8601 with timezone, and returns a string of up to 24 characters.
.PP
.I Isodate
converts a broken-down time to a datestamp
without timezone, and returns a 10 byte string.
.PP
When local time is first requested, When local time is first requested,
the program consults the the program consults the
.B timezone .B timezone

View file

@ -1,19 +1,17 @@
#include <u.h> #include <u.h>
#include <libc.h> #include <libc.h>
int uflg, nflg, iflg, tflg; int uflg, nflg;
void void
main(int argc, char *argv[]) main(int argc, char *argv[])
{ {
ulong now; ulong now;
Tm *tm;
ARGBEGIN{ ARGBEGIN{
case 'n': nflg = 1; break; case 'n': nflg = 1; break;
case 'u': uflg = 1; break; case 'u': uflg = 1; break;
case 't': tflg = 1; /* implies -i */ default: fprint(2, "usage: date [-un] [seconds]\n"); exits("usage");
case 'i': iflg = 1; break;
default: fprint(2, "usage: date [-itun] [seconds]\n"); exits("usage");
}ARGEND }ARGEND
if(argc == 1) if(argc == 1)
@ -23,17 +21,10 @@ main(int argc, char *argv[])
if(nflg) if(nflg)
print("%ld\n", now); print("%ld\n", now);
else if(iflg) { else if(uflg)
tm = uflg ? gmtime(now) : localtime(now); print("%s", asctime(gmtime(now)));
if(tflg) else
print("%s\n", isotime(tm)); print("%s", ctime(now));
else
print("%s\n", isodate(tm));
} else {
if(uflg)
print("%s", asctime(gmtime(now)));
else
print("%s", ctime(now));
}
exits(0); exits(0);
} }

View file

@ -299,50 +299,3 @@ rd_long(char **f, long *p)
*p = l; *p = l;
return 0; return 0;
} }
char*
isodate(Tm *t)
{
static char c[10+14+1]; /* leave room to append isotime */
ct_numb(c, t->year / 100 + 119);
ct_numb(c+2, t->year % 100 + 100);
c[4] = '-';
ct_numb(c+5, t->mon + 101);
c[7] = '-';
ct_numb(c+8, t->mday + 100);
c[10] = 0;
return c;
}
char*
isotime(Tm *t)
{
int tz;
char *c, *d;
d = isodate(t);
c = d + 10; /* append to isodate */
c[0] = 'T';
ct_numb(c+1, t->hour+100);
c[3] = ':';
ct_numb(c+4, t->min+100);
c[6] = ':';
ct_numb(c+7, t->sec+100);
tz = t->tzoff / 60;
if(t->tzoff) {
/* localtime */
if (t->tzoff > 0) {
c[9] = '+';
} else {
c[9] = '-';
tz = -tz;
}
ct_numb(c+10, tz / 60 + 100);
ct_numb(c+12, tz % 60 + 100);
c[14] = 0;
} else {
c[9] = 'Z';
c[10] = 0;
}
return d;
}