Date: Thu, 3 Oct 2002 11:40:05 -0700 (PDT) From: Garrett Wollman <wollman@lcs.mit.edu> To: freebsd-bugs@FreeBSD.org Subject: Re: bin/43592 Message-ID: <200210031840.g93Ie5xW080384@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR bin/43592; it has been noted by GNATS. From: Garrett Wollman <wollman@lcs.mit.edu> To: freebsd-gnats-submit@freebsd.org Cc: Subject: Re: bin/43592 Date: Thu, 3 Oct 2002 14:37:13 -0400 (EDT) For audit trail... ------- start of forwarded message (RFC 934 encapsulation) ------- Return-Path: <ben@dubuque365.com> Received: from mintaka.lcs.mit.edu (mintaka.lcs.mit.edu [18.26.0.36]) by khavrinen.lcs.mit.edu (8.12.3/8.12.5) with ESMTP id g935GFgQ004390 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=OK) for <wollman@khavrinen.lcs.mit.edu>; Thu, 3 Oct 2002 01:16:15 -0400 (EDT) (envelope-from ben@dubuque365.com) Received: from dubuque365.com (dubuque365.com [66.111.75.26]) by mintaka.lcs.mit.edu (8.12.5/8.12.5) with ESMTP id g935GCYg000252 for <wollman@lcs.mit.edu>; Thu, 3 Oct 2002 01:16:13 -0400 (EDT) (envelope-from ben@dubuque365.com) Received: from watchtower.office.parksmediagroup.com (12-219-104-246.client.mchsi.com [12.219.104.246]) by dubuque365.com (8.11.0/8.11.0) with ESMTP id g935GBP64670 for <wollman@lcs.mit.edu>; Thu, 3 Oct 2002 00:16:11 -0500 (CDT) (envelope-from ben@dubuque365.com) In-Reply-To: <200210021911.g92JB7cM000635@khavrinen.lcs.mit.edu> References: <200210021650.g92GoQtZ047931@www.freebsd.org> <200210021911.g92JB7cM000635@khavrinen.lcs.mit.edu> Content-Type: multipart/mixed; boundary="=-2zhfcTpgZzOLhkYIAqaQ" X-Mailer: Ximian Evolution 1.0.8 Message-Id: <1033622171.74394.13.camel@watchtower.office.parksmediagroup.com> Mime-Version: 1.0 From: Ben Burke <ben@dubuque365.com> To: Garrett Wollman <wollman@lcs.mit.edu> Subject: Re: bin/43592: mktime rejects dates at the start of daylight savings time Date: 03 Oct 2002 00:16:10 -0500 - --=-2zhfcTpgZzOLhkYIAqaQ Content-Type: text/plain Content-Transfer-Encoding: 7bit My apologies, I was playing with the code before I sent it and I must have sent the wrong one. Attached is a corrected (and slightly expanded) version... along with it's output from my machine. I'm very new to C/C++, so there there could be other mistakes. I originally discovered the issue when trying to use PHP's mktime function on a FreeBSD box. I compiled with: g++ -Wall -o mktime_test mktime_test.cc Thanks, Ben On Wed, 2002-10-02 at 14:11, Garrett Wollman wrote: > <<On Wed, 2 Oct 2002 09:50:26 -0700 (PDT), Ben Burke <ben@dubuque365.com> said: > > > int main() { > > struct tm date1; > > date1.tm_sec = 0; /* seconds (0 - 60) */ > > date1.tm_min = 0; /* minutes (0 - 59) */ > > date1.tm_hour = 2; /* hours (0 - 23) */ > > date1.tm_mday = 4; /* day of month (1 - 31) */ > > date1.tm_mon = 3; /* month of year (0 - 11) */ > > date1.tm_year = 104; /* year - 1900 */ > > > cout << mktime(&date1) << "\n"; > > It might help if you initialized date1::tm_isdst before it is used. > > > /* An hour later */ > > struct tm date2; > > date2.tm_sec = 0; /* seconds (0 - 60) */ > > date2.tm_min = 0; /* minutes (0 - 59) */ > > date2.tm_hour = 3; /* hours (0 - 23) */ > > date2.tm_mday = 4; /* day of month (1 - 31) */ > > date2.tm_mon = 3; /* month of year (0 - 11) */ > > date2.tm_year = 104; /* year - 1900 */ > > date1.tm_isdst = -1; /* year - 1900 */ > > > cout << mktime(&date2) << "\n"; > > Likewise date2::tm_isdst. > > In order to debug this problem (assuming that it is not simply the > result of this error in your code), we will need to know the precise > name of the timezone under which you are running the program. > > -GAWollman > - --=-2zhfcTpgZzOLhkYIAqaQ Content-Disposition: attachment; filename=test_output.txt Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; name=test_output.txt; charset=ISO-8859-1 1081062000 - CST - -1 - z=B8P=D5=01 1081065600 - CDT - --=-2zhfcTpgZzOLhkYIAqaQ Content-Disposition: attachment; filename=mktime_test.cc Content-Transfer-Encoding: quoted-printable Content-Type: text/x-c; name=mktime_test.cc; charset=ISO-8859-1 #include <iostream.h> #include <time.h> int main() { /* Before DST */ struct tm date1; date1.tm_sec =3D 0; /* seconds (0 - 60) */ date1.tm_min =3D 0; /* minutes (0 - 59) */ date1.tm_hour =3D 1; /* hours (0 - 23) */ date1.tm_mday =3D 4; /* day of month (1 - 31) */ date1.tm_mon =3D 3; /* month of year (0 - 11) */ date1.tm_year =3D 104; /* year - 1900 */ date1.tm_isdst =3D -1; /* is summer time in effect? */ cout << mktime(&date1) << " - "; cout << date1.tm_zone << "\n"; /* Starting DST */ struct tm date2; date2.tm_sec =3D 0; date2.tm_min =3D 0; date2.tm_hour =3D 2; date2.tm_mday =3D 4; date2.tm_mon =3D 3; date2.tm_year =3D 104; date2.tm_isdst =3D -1; cout << mktime(&date2) << " - "; cout << date2.tm_zone << "\n"; /* During DST */ struct tm date3; date3.tm_sec =3D 0; date3.tm_min =3D 0; date3.tm_hour =3D 3; date3.tm_mday =3D 4; date3.tm_mon =3D 3; date3.tm_year =3D 104; date3.tm_isdst =3D -1; cout << mktime(&date3) << " - "; cout << date3.tm_zone << "\n"; } - --=-2zhfcTpgZzOLhkYIAqaQ-- ------- end ------- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200210031840.g93Ie5xW080384>