C methods of obtaining time

Source: Internet
Author: User
Tags month name
How can c ++ obtain the system time?

// Solution-advantage: only the C standard library is used; disadvantage: only seconds are allowed
# Include <time. h>
# Include <stdio. h>
Int main (void)
{
Time_t t = time (0 );
Char TMP [64];
Strftime (TMP, sizeof (TMP), "% Y/% m/% d % x % A % j day % Z this year", localtime (& T ));
Puts (TMP );
Return 0;
}
Size_t strftime (char * strdest, size_t maxsize, const char * format, const struct TM * timeptr );
Generate a string based on the format string.
Struct TM * localtime (const time_t * timer );
Obtain the local time. the result obtained by localtime is returned by the structure TM.
The returned string can be in the following format:
% A the abbreviation of the day of the week. Eg: TUE
% A full name of the day of the week. Eg: Tuesday
The abbreviation of % B month name.
% B full name of the month name.
% C the local date time is better than the string.
% D indicates the day of the month (range: 00 to 31) with a number ). Date
% H indicates the hour in the 24-hour format (ranging from 00 to 23 ).
% I represents the hour in 12-hour format (range: 01 to 12 ).
% J indicates the day of the year (range: 001 to 366 ).
The number of % m months (ranging from 1 to 12 ).
% M minutes.
% P uses ''am'' or ''pm ''to indicate the local time.
% S seconds.
% U indicates the week of the current year. The first week starts from the first Sunday.
% W indicates the week of the current year. The first week starts from the first Monday.
% W indicates the day of the week by number (0 indicates Sunday ).
% X date representation without time.
% X does not include the time representation of the date. Eg: 15:26:30
The two digits % Y indicate the year (range: 00 to 99 ).
% Y indicates the complete year number, that is, the four-digit number. Example: 2008
% Z (% Z) Time Zone or abbreviation. Eg: China Standard Time
% Characters.

// Solution 2 advantages: accurate to milliseconds; disadvantage: Windows API is used
# Include <windows. h>
# Include <stdio. h>
Int main (void)
{
Systemtime sys;
Getlocaltime (& Sys );
Printf ("% 4D/% 02d/% 02d % 02d: % 02d: % 02d. % 03d week % 1D/N ", sys. wyear, sys. wmonth, sys. wday, sys. whour, sys. wminute, sys. wsecond, sys. wmilliseconds, sys. wdayofweek );
Return 0;
}

// Solution 3. Advantages: using system functions, you can modify the system time.
// This file must be a C ++ File
# Include <stdlib. h>
# Include <iostream>
Using namespace STD;
Void main ()
{
System ("time ");
}

// Solution 4: Convert the current time to seconds, and then use the corresponding time to convert
// This file must be a C ++ File
# Include <iostream>
# Include <ctime>
Using namespace STD;
Int main ()
{
Time_t now_time;
Now_time = Time (null );
Cout <now_time;
Return 0;
}

1. Obtain the time:Use the time () function to obtain the calendar time. Its prototype is time_t time (time_t * timer); # include "stdafx. H "# include" time. H "# include" stdio. H "# include" stdlib. H "int main (void) {struct TM t; // defines the TM time structure, which is used to store the time_t t_of_day data information in the time format; // defines the time_t time structure T. tm_year = 2006-1900; // calculate the time t based on January 1, 1900. tm_mon = 6; // assign a value to the struct T. tm_mday = 1; T. tm_hour = 0; T. tm_min = 0; T. tm_sec = 1; T. tm_isdst = 0; t_of_day = mktime (& T); // use the mktime () function to convert the time represented in the TM structure to a calendar time: time_t variable . The function prototype is as follows: time_t mktime (struct TM * timeptr); The ctime () function (the parameter is in the time_t structure) displays the time in a fixed format, the returned value is a char * string. Return 0 ;} 2. Storage of time is stored through two predefined structures:1. The calendar time is represented by the time_t data type. The time expressed by time_t (calendar time) is from a time point (for example, January 1, 1970 00:00:00) the number of seconds. In time. h, we can also see that time_t is a long integer: # ifndef _ time_t_definedtypedef long time_t; /* Time Value */# DEFINE _ time_t_defined/* avoid repeatedly defining time_t */# endif2. In Standard C/C ++, we can use the TM structure to obtain the date and time. The TM structure is in time. the definition in H is as follows: struct TM {int tm_sec;/* Second-value range: [0, 59] */INT tm_min; /* minute-value range: [] */INT tm_hour;/* Time-value range: [] */INT tm_mday; /* date in a month-value range: [1, 31] */INT tm_mon;/* month (starting from January 1, January, 0 indicates January 1, January) -The value range is [0, 11] */INT tm_year;/* year The value is equal to the actual year minus 1900 */INT tm_wday;/* the week-value range is [], where 0 represents Sunday, 1 represents Monday, and so on */INT tm_yday; /* The number of days starting from January 1, 0,365-the value range is []. 0 indicates January 1, and so on. */INT tm_isdst;/* indicates the identifier of the hour, when the sequence is executed, tm_isdst is positive. When the sequence is not implemented, the tm_isdst value is 0. If the sequence is unknown, the tm_isdst () value is negative. */}; 3. display of time:Time. the H header file provides the asctime () function (the parameter is a TM structure pointer) and ctime () function (the parameter is a time_t structure) to display the time in a fixed format, both return values are char * strings. The returned time format is: day of the week, month, hour, minute, second, year, N, 0, time. H also provides two different functions to convert the calendar time (an integer expressed in time_t) to the time format we usually see separately displaying year, month, day, hour, minute, and second.
TM: struct TM * gmtime (const time_t * timer); The gmtime () function converts the calendar time to the world's Standard Time (GMT ), returns a TM struct to save the time struct TM * localtime (const time_t * timer). The localtime () function converts the calendar time to the local time # include <stdafx. h> # include <time. h> # include <stdio. h> # include <stdlib. h> int main (void) {struct TM * local, * PTR; // defines the TM structure pointer to store the time information time_t; // time structure or object t = time (null); // obtain the current system calendar time // use the time () function to obtain the calendar time ), // Its prototype is time_t time (tim E_t * timer); Local = localtime (& T); // The localtime () function converts the calendar time to the local time printf ("Local hour is: % d/N ", local-> tm_hour); // specifies the time member printf ("UTC hour is: % d/N", local-> tm_hour) of the output TM struct ); // local = gmtime (& T); // The gmtime () function converts the calendar time to the world standard time (GMT ), // return a TM struct to save the time PTR = gmtime (& T ); // convert the calendar time to the world standard time printf ("the UTC time is % s/n", asctime (PTR )); // format and output the world standard time printf ("The local time is % s/n", ctime (& T); // output the local time/* asctime () function The number (the parameter is a TM structure pointer) and the ctime () function (the parameter is a time_t structure) display the time in a fixed format. The return values of both are char * strings. The returned time format is: day of the week, month, hour, minute, second, year, N/0 */return 0 ;} 4. Time difference calculation:Function used: the timing function in C/C ++ is clock (), and the related data type is clock_t. The clock function is defined as follows in msdn: clock_t clock (void); the function returns from "enable this program process" to "program call clock () the number of clock units (clock tick) between functions. clock_t is a long integer and the Data Type of the storage time. In time. in the H file, a constant clocks_per_sec is also defined to indicate the number of clock units in a second. Its definition is as follows: # define clocks_per_sec (clock_t) 1000) every 1‰ seconds (1 millisecond), the value returned by calling the clock () function is increased by 1, and the length of the clock timing unit is 1 millisecond, so the timing accuracy is also 1 millisecond, can we change the definition of clocks_per_sec to a greater value, so that the timing accuracy is higher? This is not acceptable. In standard C/C ++, the minimum unit of time is one millisecond. Double difftime (time_t time1, time_t time0); this function is used to calculate the time difference. # Include "stdafx. H "# include" time. H "# include" stdio. H "# include" stdlib. H "int main (void) {time_t c_start, t_start, c_end, t_end; c_start = clock (); t_start = Time (null); System (" pause "); c_end = clock (); t_end = Time (null); printf ("the pause used % F The MS by time (). /n ", difftime (c_end, c_start); printf (" the pause used % f s by clock (). /n ", difftime (t_end, t_start); System (" pause "); Return 0 ;}5, other use of time As the seed of a random number, because the time is actually a long integer of the double type, obtained through the time (null) function, as srand (Time (null )) is better. # Include "stdafx. H "# include" time. H "# include" stdio. H "# include" stdlib. H "int main (void) {srand (Time (null); // sets the seed. If you comment out this function, for (INT I = 0; I <100; I ++) {printf ("% d/T", Rand ());} system ("pause"); Return 0;
Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.