3£®ÓëÈÕÆÚºÍʱ¼äÏà¹ØµÄÊý¾Ý½á¹¹
ÔÚ±ê×¼C/C++ÖУ¬ÎÒÃÇ¿Éͨ¹ýtm½á¹¹À´»ñµÃÈÕÆÚºÍʱ¼ä£¬tm½á¹¹ÔÚtime.hÖе͍ÒåÈçÏ£º
#ifndef _TM_DEFINED
struct tm {
int tm_sec; /* Ãë – È¡ÖµÇø¼äΪ[0,59] */
int tm_min; /* ·Ö - È¡ÖµÇø¼äΪ[0,59] */
int tm_hour; /* ʱ - È¡ÖµÇø¼äΪ[0,23] */
int tm_mday; /* Ò»¸öÔÂÖеÄÈÕÆÚ - È¡ÖµÇø¼äΪ[1,31] */
int tm_mon; /* Ô·ݣ¨´ÓÒ»Ô¿ªÊ¼£¬0´ú±íÒ»Ô£© - È¡ÖµÇø¼äΪ[0,11] */
int tm_year; /* Äê·Ý£¬ÆäÖµµÈÓÚʵ¼ÊÄê·Ý¼õÈ¥1900 */
int tm_wday; /* ÐÇÆÚ – È¡ÖµÇø¼äΪ[0,6]£¬ÆäÖÐ0´ú±íÐÇÆÚÌ죬1´ú±íÐÇÆÚÒ»£¬ÒÔ´ËÀàÍÆ */
int tm_yday; /* ´ÓÿÄêµÄ1ÔÂ1ÈÕ¿ªÊ¼µÄÌìÊý – È¡ÖµÇø¼äΪ[0,365]£¬ÆäÖÐ0´ú±í1ÔÂ1ÈÕ£¬1´ú±í1ÔÂ2ÈÕ£¬ÒÔ´ËÀàÍÆ */
int tm_isdst; /* ÏÄÁîʱ±êʶ·û£¬ÊµÐÐÏÄÁîʱµÄʱºò£¬tm_isdstΪÕý¡£²»ÊµÐÐÏÄÁîʱµÄ½øºò£¬tm_isdstΪ0£»²»Á˽âÇé¿öʱ£¬tm_isdst()Ϊ¸º¡£*/
};
#define _TM_DEFINED
#endif
ANSI C±ê×¼³ÆÊ¹ÓÃtm½á¹¹µÄÕâÖÖʱ¼ä±íʾΪ·Ö½âʱ¼ä(broken-down time)¡£
¶øÈÕÀúʱ¼ä£¨Calendar Time£©ÊÇͨ¹ýtime_tÊý¾ÝÀàÐÍÀ´±íʾµÄ£¬ÓÃtime_t±íʾµÄʱ¼ä£¨ÈÕÀúʱ¼ä£©ÊÇ´ÓÒ»¸öʱ¼äµã£¨ÀýÈ磺1970Äê1ÔÂ1ÈÕ0ʱ0·Ö0Ã룩µ½´ËʱµÄÃëÊý¡£ÔÚtime.hÖУ¬ÎÒÃÇÒ²¿ÉÒÔ¿´µ½time_tÊÇÒ»¸ö³¤ÕûÐÍÊý£º
#ifndef _TIME_T_DEFINED
typedef long time_t; /* ʱ¼äÖµ */
#define _TIME_T_DEFINED /* ±ÜÃâÖØ¸´¶¨Òå time_t */
#endif
´ó¼Ò¿ÉÄÜ»á²úÉúÒÉÎÊ£º¼ÈÈ»time_tʵ¼ÊÉÏÊdz¤ÕûÐÍ£¬µ½Î´À´µÄijһÌ죬´ÓÒ»¸öʱ¼äµã£¨Ò»°ãÊÇ1970Äê1ÔÂ1ÈÕ0ʱ0·Ö0Ã룩µ½ÄÇʱµÄÃëÊý£¨¼´ÈÕÀúʱ¼ä£©³¬³öÁ˳¤ÕûÐÎËùÄܱíʾµÄÊýµÄ·¶Î§Ôõô°ì£¿¶Ôtime_tÊý¾ÝÀàÐ͵ÄÖµÀ´Ëµ£¬ËüËù±íʾµÄʱ¼ä²»ÄÜÍíÓÚ2038Äê1ÔÂ18ÈÕ19ʱ14·Ö07Ã롣ΪÁËÄܹ»±íʾ¸ü¾ÃÔ¶µÄʱ¼ä£¬Ò»Ð©±àÒëÆ÷³§ÉÌÒýÈëÁË64λÉõÖÁ¸ü³¤µÄÕûÐÎÊýÀ´±£´æÈÕÀúʱ¼ä¡£±ÈÈç΢ÈíÔÚVisual C++ÖвÉÓÃÁË__time64_tÊý¾ÝÀàÐÍÀ´±£´æÈÕÀúʱ¼ä£¬²¢Í¨¹ý_time64()º¯ÊýÀ´»ñµÃÈÕÀúʱ¼ä£¨¶ø²»ÊÇͨ¹ýʹÓÃ32λ×ÖµÄtime()º¯Êý£©£¬ÕâÑù¾Í¿ÉÒÔͨ¹ý¸ÃÊý¾ÝÀàÐͱ£´æ3001Äê1ÔÂ1ÈÕ0ʱ0·Ö0Ã루²»°üÀ¨¸Ãʱ¼äµã£©Ö®Ç°µÄʱ¼ä¡£
ÔÚtime.hÍ·ÎļþÖУ¬ÎÒÃÇ»¹¿ÉÒÔ¿´µ½Ò»Ð©º¯Êý£¬ËüÃǶ¼ÊÇÒÔtime_tΪ²ÎÊýÀàÐÍ»ò·µ»ØÖµÀàÐ͵ĺ¯Êý£º
double difftime(time_t time1, time_t time0);
time_t mktime(struct tm * timeptr);
time_t time(time_t * timer);
char * asctime(const struct tm * timeptr);
char * ctime(const time_t *timer);
´ËÍ⣬time.h»¹ÌṩÁËÁ½ÖÖ²»Í¬µÄº¯Êý½«ÈÕÀúʱ¼ä£¨Ò»¸öÓÃtime_t±íʾµÄÕûÊý£©×ª»»ÎªÎÒÃÇÆ½Ê±¿´µ½µÄ°ÑÄêÔÂÈÕʱ·ÖÃë·Ö¿ªÏÔʾµÄʱ¼ä¸ñʽtm£º
struct tm * gmtime(const time_t *timer);
struct tm * localtime(const time_t * timer);
ͨ¹ý²éÔÄMSDN£¬ÎÒÃÇ¿ÉÒÔÖªµÀMicrosoft C/C++ 7.0ÖÐʱ¼äµãµÄÖµ£¨time_t¶ÔÏóµÄÖµ£©ÊÇ´Ó1899Äê12ÔÂ31ÈÕ0ʱ0·Ö0Ãëµ½¸Ãʱ¼äµãËù¾¹ýµÄÃëÊý£¬¶øÆäËü¸÷ÖÖ°æ±¾µÄMicrosoft C/C++ºÍËùÓв»Í¬°æ±¾µÄVisual C++¶¼ÊǼÆËãµÄ´Ó1970Äê1ÔÂ1ÈÕ0ʱ0·Ö0Ãëµ½¸Ãʱ¼äµãËù¾¹ýµÄÃëÊý¡£
![nixsky[www.nixsky.com]](/templets/images/toplogo.gif)

