I attached an example which shows the DST related changes this year. I just couldn't resist writing something where I get to use rare values such as 1112345678 and 1131131131 in a meaningful way. :-)
ALeine ___________________________________________________________________ WebMail FREE http://mail.austrosearch.net
/*- * Copyright (c) 2005 ALeine <[EMAIL PROTECTED]> * All rights reserved. * * Imported into CVS repository at exactly 1112345678 seconds * since the Epoch. * * $Id: dst_2005.c,v 1.1.1.1 2005/04/01 08:54:38 aleine Exp $ * */ #include <stdio.h> #include <time.h> void get_date_string_x_days_from_time(char *, size_t, int, time_t); void get_date_string_x_days_before_time(char *, size_t, int, time_t); int main(void) { time_t now; int last_day; int day_offset; char date_string[32]; now = time(NULL); /* Uncomment the following line to see what happens on 01-Apr-2005 */ /* now = 1112345678; */ /* Uncomment the following line to see what happens on 04-Nov-2005 */ /* now = 1131131131; */ fprintf(stderr, "Reference date and time: %s\n", ctime(&now)); last_day = 32; for (day_offset = 1; day_offset < last_day; day_offset++) { get_date_string_x_days_before_time(date_string, sizeof(date_string), day_offset, now); printf("%3d day%c before reference date: %s\n", day_offset, (day_offset > 1 ? 's' : ' '), date_string); } return 0; } void get_date_string_x_days_before_time(char *date_string, size_t size, int day_offset, time_t time) { get_date_string_x_days_from_time(date_string, size, -day_offset, time); } void get_date_string_x_days_from_time(char *date_string, size_t size, int day_offset, time_t time) { struct tm *tm_p; tm_p = localtime(&time); tm_p->tm_mday += day_offset; tm_p->tm_hour = tm_p->tm_min = tm_p->tm_sec = 0; /* make mktime(3) figure out whether DST is in effect */ tm_p->tm_isdst = -1; time = mktime(tm_p); if (time == ((time_t) - 1)) printf("mktime(3) failed\n"); snprintf(date_string, size, "%d-%.2d-%.2d [DST: %d]", tm_p->tm_year + 1900, tm_p->tm_mon + 1, tm_p->tm_mday, tm_p->tm_isdst); }
_______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "[EMAIL PROTECTED]"