From 4144b610705d157c812cea0a2bff931c35afe1d0 Mon Sep 17 00:00:00 2001 From: david Date: Tue, 6 Oct 2026 04:21:57 -0300 Subject: fixed a makefile thing and added the thingy that does things --- timetolocal.c | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) (limited to 'timetolocal.c') diff --git a/timetolocal.c b/timetolocal.c index 4b81335..f2e9c1a 100644 --- a/timetolocal.c +++ b/timetolocal.c @@ -3,6 +3,7 @@ #include #include #include +#include #include "tztable.h" /*it's not case sensitive @@ -37,6 +38,17 @@ davidtime strtimetoint(char *whattimeisit) { return timehoursandminutes; } +char* gethhmm(char* buffer, size_t max_size) { + time_t raw_time; + struct tm* time_info; + + time(&raw_time); + time_info = localtime(&raw_time); + + strftime(buffer, max_size, "%H:%M", time_info); + return buffer; +} + int convert(char *timey, char *zone){ time_t rawtime = time(NULL); struct tm *ptm = gmtime(&rawtime); @@ -67,13 +79,28 @@ int convert(char *timey, char *zone){ return 0; } + int main (int argc, char **argv){ - if((argc <= 2) || (argc > 3)){ - printf("%s: usage: %s [TIME (24hs)] [ZONE]\ne.g: %s 7:15 est\n", argv[0], argv[0], argv[0]); + if((argc <= 1) || (argc > 3)){ + printf("%s: usage: %s [TIME (24hs)] [ZONE]\ne.g: %s 7:15 est\n\nalso get relative times like %s [ZONE]\ne.g: %s est\n", argv[0], argv[0], argv[0], argv[0], argv[0]); exit(0); } + char timestr[16]; + gethhmm(timestr, sizeof(timestr)); + if (argc == 2) { + if (isdigit((unsigned char)argv[1][0])) { + printf("timezones don't have numbers in them\n"); + return 1; + } + if (convert(timestr, argv[1]) == -1) { + printf("%s: time zone not found, did you write it correctly?\n", argv[0]); + return 1; + } + return 0; + } + if(convert(argv [1], argv[2]) == -1){ printf("%s: time zone not found, did you write it correctly?\n", argv[0]); return 1; -- cgit v1.3-2-g0d8e