Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 5 Oct 1998 07:00:00 -0700 (PDT)
From:      Q <q@fan.net.au>
To:        freebsd-bugs@FreeBSD.ORG
Subject:   Re: misc/8156: mktime does not set tm_wday
Message-ID:  <199810051400.HAA06697@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR misc/8156; it has been noted by GNATS.

From: Q <q@fan.net.au>
To: estartu@augusta.de
Cc: freebsd-gnats-submit@FreeBSD.ORG
Subject: Re: misc/8156: mktime does not set tm_wday
Date: Mon, 5 Oct 1998 23:49:48 +1000 (EST)

 On Mon, 5 Oct 1998 estartu@augusta.de wrote:
 
 > >Originator:     Gerhard Schmidt
 > >Organization:
 > Augsburger Computer Forum e.V.
 > >Release:        2.2.7-stable
 > >Environment:
 > FreeBSD inga.augusta.de 2.2.7-STABLE FreeBSD 2.2.7-STABLE #0: Thu Sep 17 15:22:59 MET DST 1998     root@inga.augusta.de:/usr/src/sys/compile/INGA  i386
 > 
 > >Description:
 > I have to finde out the weeekday of a spezific date and tryed to do
 > this using mktime. As Said in the Manpage tm_wday is set to the weekday
 > the programm fills the struct tm with the date and calles mktime 
 > but after return tm_wday hasn't change. 
 > >How-To-Repeat:
 > struct tm Z
 > Z->tm_mday = 1;
 > Z->tm_mon = 1;
 > Z->tm_year = 1999;
 > Z->tm_isdst = -1;
 > mktime(&Z);
 > 
 > >Fix:
 
 From mktime() man page:
 
 External declarations as well as the tm structure definition are in the
 <time.h> include file.  The tm structure includes at least the
 following fields:
 
            int tm_sec;     /* seconds (0 - 60) */
            int tm_min;     /* minutes (0 - 59) */
            int tm_hour;    /* hours (0 - 23) */
            int tm_mday;    /* day of month (1 - 31) */
            int tm_mon;     /* month of year (0 - 11) */
            int tm_year;    /* year - 1900 */
                               ^^^^^^^^^^^
 
 It's not a bug. Your using the struct incorrectly. Every call you make to
 mktime() will be returning -1. You are effectively asking it for the year
 3899. Which can't be expresses using a time_t value. Change 'tm_year =
 1999' to 'tm_year = 99'. You should put your Y2K hat on if you plan to use
 a 'struct tm' in your application.
 
 Seeya...Q
 
                -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
                         
                           _____  /      Quinton Dolan - q@fan.net.au
   __  __/  /   /   __/   /      /          Systems Administrator
      /    __  /   _/    /      /            Fast Access Network
   __/  __/ __/ ____/   /   -  /          Gold Coast, QLD, Australia
                     _______  /              Ph: +61 7 5574 1050
                            \_\                 SAGE-AU Member
 

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?199810051400.HAA06697>