www.pudn.com > NETINFO.rar > time.cpp


/* TIMES.C illustrates various time and date functions including: 
 *      time            _ftime          ctime       asctime 
 *      localtime       gmtime          mktime      _tzset 
 *      _strtime        _strdate        strftime 
 * 
 * Also the global variable: 
 *      _tzname 
 */ 
 
#include  
#include  
#include  
#include  
#include  
 
void main() 
{ 
    char tmpbuf[128], ampm[] = "AM"; 
	time_t ltime; 
    struct _timeb tstruct; 
    struct tm *today, *gmt, xmas = { 0, 0, 12, 25, 11, 93 }; 
 
    /* Set time zone from TZ environment variable. If TZ is not set, 
     * the operating system is queried to obtain the default value  
     * for the variable.  
     */ 
    _tzset(); 
 
    /* Display operating system-style date and time. */ 
    _strtime( tmpbuf ); 
	 
    printf( "OS time:\t%s\n", tmpbuf ); 
    _strdate( tmpbuf ); 
    printf( "OS date:\t\t\t\t%s\n", tmpbuf ); 
 
    /* Get UNIX-style time and display as number and string. */ 
    time( <ime ); 
    printf( "Time in seconds since UTC 1/1/70:\t%ld\n", ltime ); 
     
    printf( "UNIX time and date:\t\t\t%s", ctime( <ime ) ); 
    
    /* Display UTC. */ 
    gmt = gmtime( <ime ); 
    printf( "Coordinated universal time:\t\t%s", asctime( gmt ) ); 
 
    /* Convert to time structure and adjust for PM if necessary. */ 
    today = localtime( <ime ); 
    if( today->tm_hour > 12 ) 
    { 
   strcpy( ampm, "PM" ); 
   today->tm_hour -= 12; 
    } 
    if( today->tm_hour == 0 )  /* Adjust if midnight hour. */ 
   today->tm_hour = 12; 
 
    /* Note how pointer addition is used to skip the first 11  
     * characters and printf is used to trim off terminating  
     * characters. 
     */ 
    printf( "12-hour time:\t\t\t\t%.8s %s\n", 
       asctime( today ) + 11, ampm ); 
 
    /* Print additional time information. */ 
    _ftime( &tstruct ); 
    printf( "Plus milliseconds:\t\t\t%u\n", tstruct.millitm ); 
    printf( "Zone difference in seconds from UTC:\t%u\n",  
             tstruct.timezone ); 
    printf( "Time zone name:\t\t\t\t%s\n", _tzname[0] ); 
    printf( "Daylight savings:\t\t\t%s\n",  
             tstruct.dstflag ? "YES" : "NO" ); 
 
    /* Make time for noon on Christmas, 1993. */ 
    if( mktime( &xmas ) != (time_t)-1 ) 
   printf( "Christmas\t\t\t\t%s\n", asctime( &xmas ) ); 
 
    /* Use time structure to build a customized time string. */ 
    today = localtime( <ime ); 
 
    /* Use strftime to build a customized time string. */ 
    strftime( tmpbuf, 128, 
         "Today is %A, day %d of %A in the year %Y.\n", today ); 
    printf( tmpbuf ); 
}