mktime man page on SmartOS

Man page or keyword search:  
man Server   16655 pages
apropos Keyword Search (all sections)
Output format
SmartOS logo
[printable version]

MKTIME(3C)							    MKTIME(3C)

NAME
       mktime - converts a tm structure to a calendar time

SYNOPSIS
       #include <time.h>

       time_t mktime(struct tm *timeptr);

DESCRIPTION
       The mktime() function converts the time represented by the tm structure
       pointed to by timeptr into a calendar  time   (the  number  of  seconds
       since 00:00:00 UTC, January 1, 1970).

       The tm structure contains the following members:

	 int  tm_sec;	  /* seconds after the minute [0, 60]  */
	 int  tm_min;	  /* minutes after the hour [0, 59] */
	 int  tm_hour;	  /* hour since midnight [0, 23] */
	 int  tm_mday;	  /* day of the month [1, 31] */
	 int  tm_mon;	  /* months since January [0, 11] */
	 int  tm_year;	  /* years since 1900 */
	 int  tm_wday;	  /* days since Sunday [0, 6] */
	 int  tm_yday;	  /* days since January 1 [0, 365] */
	 int  tm_isdst;	  /* flag for daylight savings time */

       In  addition  to	 computing  the calendar time, mktime() normalizes the
       supplied tm structure. The original values of the tm_wday  and  tm_yday
       components of the structure are ignored, and the original values of the
       other components are not restricted to the ranges indicated in the def‐
       inition	of  the structure. On successful completion, the values of the
       tm_wday and tm_yday components are set  appropriately,  and  the	 other
       components  are	set to represent the specified calendar time, but with
       their values forced to be within	 the  appropriate  ranges.  The	 final
       value of tm_mday is not set until tm_mon and tm_year are determined.

       The  tm_year  member  must  be  for  year 1901 or later. Calendar times
       before 20:45:52 UTC, December 13, 1901 or after 03:14:07 UTC,   January
       19, 2038 cannot be represented. Portable applications should not try to
       create dates before 00:00:00 UTC, January 1,  1970  or  after  00:00:00
       UTC, January 1, 2038.

       The  original  values  of  the components may be either greater than or
       less than the specified range. For example, a tm_hour  of  −1  means  1
       hour  before midnight, tm_mday of 0 means the day preceding the current
       month, and tm_mon of −2 means 2 months before January of tm_year.

       If tm_isdst is positive, the original values are assumed to be  in  the
       alternate  timezone. If it turns out that the alternate timezone is not
       valid for the computed calendar time, then the components are  adjusted
       to  the main timezone. Likewise, if tm_isdst is zero, the original val‐
       ues are assumed to be in the main timezone and  are  converted  to  the
       alternate  timezone  if the main timezone is not valid. If  tm_isdst is
       negative, mktime() attempts to determine whether the alternate timezone
       is in effect for the specified time.

       Local  timezone	information is used as if mktime() had called tzset().
       See ctime(3C).

RETURN VALUES
       If the calendar time can be represented in an object  of	 type  time_t,
       mktime() returns the specified calendar time without changing errno. If
       the calendar time cannot be represented, the function returns the value
       (time_t)−1 and sets errno to indicate the error.

ERRORS
       The mktime() function will fail if:

       EOVERFLOW
		    The date represented by the input tm struct cannot be rep‐
		    resented in a time_t.  Note that  the  errno  setting  may
		    change if future revisions to the standards specify a dif‐
		    ferent value.

USAGE
       The  mktime() function is MT-Safe  in  multithreaded  applications,  as
       long as no user-defined function directly modifies one of the following
       variables: timezone, altzone, daylight, and tzname. See ctime(3C).

       Note that −1 can be a valid return value for the time that is one  sec‐
       ond  before  the	 Epoch.	  The  user  should clear errno before calling
       mktime(). If mktime() then returns −1, the user should check  errno  to
       determine whether or not an error actually occurred.

       The   mktime() function assumes Gregorian dates. Times before the adop‐
       tion of the Gregorian calendar will not match historial records.

EXAMPLES
       Example 1 Sample code using mktime().

       What day of the week is July 4, 2001?

	 #include <stdio.h>
	 #include <time.h>
	 static char *const wday[] = {
		 "Sunday", "Monday", "Tuesday", "Wednesday",
		 "Thursday", "Friday", "Saturday", "-unknown-"
	 };
	 struct tm time_str;
	 /*...*/
	 time_str.tm_year    = 2001 - 1900;
	 time_str.tm_mon = 7 - 1;
	 time_str.tm_mday = 4;
	 time_str.tm_hour = 0;
	 time_str.tm_min = 0;
	 time_str.tm_sec = 1;
	 time_str.tm_isdst = −1;
	 if (mktime(&time_str)== −1)
		 time_str.tm_wday=7;
	 printf("%s\n", wday[time_str.tm_wday]);

BUGS
       The zoneinfo timezone data files do not	transition  past  Tue  Jan  19
       03:14:07	 2038  UTC.   Therefore for 64-bit applications using zoneinfo
       timezones, calculations beyond this date may not use the correct offset
       from standard time, and could return incorrect values. This affects the
       64-bit version of mktime().

ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:

       ┌────────────────────┬─────────────────────────┐
       │  ATTRIBUTE TYPE    │	  ATTRIBUTE VALUE     │
       ├────────────────────┼─────────────────────────┤
       │Interface Stability │ Standard		      │
       ├────────────────────┼─────────────────────────┤
       │MT-Level	    │ MT-Safe with exceptions │
       └────────────────────┴─────────────────────────┘

SEE ALSO
       ctime(3C), getenv(3C), TIMEZONE(4), attributes(5), standards(5)

				  Nov 1, 2003			    MKTIME(3C)
[top]

List of man pages available for SmartOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net