Date: Wed, 11 Aug 2004 10:44:34 +0200 (MEST) From: Mipam <mipam@ibb.net> To: Giorgos Keramidas <keramida@ceid.upatras.gr> Cc: freebsd-questions@freebsd.org Subject: Re: localtime question Message-ID: <Pine.BSO.4.56.0408111039230.11899@ux11.ltcm.net> In-Reply-To: <20040810171119.GA26303@orion.daedalusnetworks.priv> References: <Pine.BSO.4.56.0408101646230.26666@ux11.ltcm.net><20040810162612 .GC25389@orion.daedalusnetworks.priv><Pine.BSO.4.56.0408101842210.21307@ux1 1.ltcm.net> <20040810171119.GA26303@orion.daedalusnetworks.priv>
next in thread | previous in thread | raw e-mail | index | archive | help
[SNIP] > You'd have to use strftime() and a local buffer for that. I found an example and adjusted it: #include <time.h> #include <stdio.h> int main() { struct tm *ptr; time_t tm; char str[60]; char str2[60]; char str3[60]; tm = time(NULL)-86400; ptr = localtime(&tm); strftime(str ,100 , "%d",ptr); strftime(str2 ,100 , "%m",ptr); strftime(str3 ,100 , "%Y",ptr); printf("%s %s %s\n",str3,str2,str); return 0; } This runs just fine: 2004 08 10 I dont know what the 100 is good for? I changed the first according your advice: #include <sys/time.h> #include <err.h> #include <stdio.h> int main(void) { struct timeval tv; struct timeval tv_current; if (gettimeofday(&tv_current, NULL) == -1) err(1, "Could not get local time of day"); tv.tv_sec = tv_current.tv_sec-86400; printf("%s", ctime((const time_t *) &tv.tv_sec)); /* printf("%s\n", ctime(&tv.tv_sec)); */ return 0; } Output: Tue Aug 10 10:42:26 2004 I compiled both with: cc -O3 -mcpu=pentiumpro -o time time.c Both compile without errors. Bye, Mipam.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSO.4.56.0408111039230.11899>