Plan 9 from Bell Labs’s /usr/web/sources/patch/maybe/date-iso8601/date.c

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


#include <u.h>
#include <libc.h>

int iflg, nflg, uflg;

void
main(int argc, char *argv[])
{
	ulong now;
	int tzhr, tzmin;
	struct Tm *tm;

	ARGBEGIN{
	case 'i':	iflg = 1; break;
	case 'n':	nflg = 1; break;
	case 'u':	uflg = 1; break;
	default:	fprint(2, "usage: date [-inu] [seconds]\n"); exits("usage");
	}ARGEND

	if(argc == 1)
		now = strtoul(*argv, 0, 0);
	else
		now = time(0);

	if(nflg)
		print("%ld\n", now);
	else if(iflg){
		if(uflg)
			tm = gmtime(now);
		else
			tm = localtime(now);
		tzhr = tm->tzoff / 3600;
		tzmin = (abs(tm->tzoff) - (abs(tzhr) * 3600)) / 60;
		print("%0.4d%0.2d%0.2dT%0.2d%0.2d%0.2d%+.2d%.2d\n",
			tm->year + 1900, tm->mon + 1, tm->mday,
			tm->hour, tm->min, tm->sec, tzhr, tzmin);
	}
	else if(uflg)
		print("%s", asctime(gmtime(now)));
	else
		print("%s", ctime(now));
	
	exits(0);
}

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to webmaster@9p.io.