方法一,#includetime.h
成都創(chuàng)新互聯(lián)公司自2013年起,先為鐘山等服務(wù)建站,鐘山等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為鐘山企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
int main()
{
time_t timep;
struct tm *p;
time (timep);
p=gmtime(timep);
printf("%d\n",p-tm_sec); /*獲取當(dāng)前秒*/
printf("%d\n",p-tm_min); /*獲取當(dāng)前分*/
printf("%d\n",8+p-tm_hour);/*獲取當(dāng)前時(shí),這里獲取西方的時(shí)間,剛好相差八個(gè)小時(shí)*/
printf("%d\n",p-tm_mday);/*獲取當(dāng)前月份日數(shù),范圍是1-31*/
printf("%d\n",1+p-tm_mon);/*獲取當(dāng)前月份,范圍是0-11,所以要加1*/
printf("%d\n",1900+p-tm_year);/*獲取當(dāng)前年份,從1900開始,所以要加1900*/
printf("%d\n",p-tm_yday); /*從今年1月1日算起至今的天數(shù),范圍為0-365*/
}
方法二.#include?stdio.h
#include?time.h
int?main?()
{
time_t?t
struct?tm?*?lt;????time?(t);//獲取Unix時(shí)間戳。
lt?=?localtime?(t);//轉(zhuǎn)為時(shí)間結(jié)構(gòu)。
printf?(?"%d/%d/%d?%d:%d:%d\n",lt-tm_year+1900,?lt-tm_mon,?lt-tm_mday,
lt-tm_hour,?lt-tm_min,?lt-tm_sec);//輸出結(jié)果
return?0;}
擴(kuò)展資料
1、CTimeSpan類
如果想計(jì)算兩段時(shí)間的差值,可以使用CTimeSpan類,具體使用方法如下:
CTime t1( 1999, 3, 19, 22, 15, 0 );
CTime t = CTime::GetCurrentTime();
CTimeSpan span=t-t1; //計(jì)算當(dāng)前系統(tǒng)時(shí)間與時(shí)間t1的間隔
int iDay=span.GetDays(); //獲取這段時(shí)間間隔共有多少天
int iHour=span.GetTotalHours(); //獲取總共有多少小時(shí)
int iMin=span.GetTotalMinutes();//獲取總共有多少分鐘
int iSec=span.GetTotalSeconds();//獲取總共有多少秒
2、timeb()函數(shù)
_timeb定義在SYS\TIMEB.H,有四個(gè)fields
dstflag
millitm
time
timezone
void _ftime( struct _timeb *timeptr );
struct _timeb timebuffer;
_ftime( timebuffer );
參考資料來(lái)源:百度百科:time函數(shù)
C語(yǔ)言中讀取系統(tǒng)時(shí)間的函數(shù)為time(),其函數(shù)原型為:
#include time.h
time_t time( time_t * ) ;
time_t就是long,函數(shù)返回從1970年1月1日(MFC是1899年12月31日)0時(shí)0分0秒,到現(xiàn)在的的秒數(shù)??梢哉{(diào)用ctime()函數(shù)進(jìn)行時(shí)間轉(zhuǎn)換輸出:
char * ctime(const time_t *timer);
將日歷時(shí)間轉(zhuǎn)換成本地時(shí)間,按年月日格式,進(jìn)行輸出,如:
Wed Sep 23 08:43:03 2015
C語(yǔ)言還提供了將秒數(shù)轉(zhuǎn)換成相應(yīng)的時(shí)間結(jié)構(gòu)的函數(shù):
struct tm * gmtime(const time_t *timer); //將日歷時(shí)間轉(zhuǎn)化為世界標(biāo)準(zhǔn)時(shí)間(即格林尼治時(shí)間)
struct tm * localtime(const time_t * timer); //將日歷時(shí)間轉(zhuǎn)化為本地時(shí)間
將通過time()函數(shù)返回的值,轉(zhuǎn)換成時(shí)間結(jié)構(gòu)struct tm :
struct tm {
int tm_sec; /* 秒 – 取值區(qū)間為[0,59] */
int tm_min; /* 分 - 取值區(qū)間為[0,59] */
int tm_hour; /* 時(shí) - 取值區(qū)間為[0,23] */
int tm_mday; /* 一個(gè)月中的日期 - 取值區(qū)間為[1,31] */
int tm_mon; /* 月份(從一月開始,0代表一月) - 取值區(qū)間為[0,11] */
int tm_year; /* 年份,其值等于實(shí)際年份減去1900 */
int tm_wday; /* 星期 – 取值區(qū)間為[0,6],其中0代表星期天,1代表星期一,以此類推 */
int tm_yday; /* 從每年的1月1日開始的天數(shù) – 取值區(qū)間為[0,365],其中0代表1月1日,1代表1月2日,以此類推 */
int tm_isdst; /* 夏令時(shí)標(biāo)識(shí)符,實(shí)行夏令時(shí)的時(shí)候,tm_isdst為正。不實(shí)行夏令時(shí)的進(jìn)候,tm_isdst為0;不了解情況時(shí),tm_isdst()為負(fù)。*/
};
編程者可以根據(jù)程序功能的情況,靈活的進(jìn)行日期的讀取與輸出了。
例如:
#includetime.h
main()
{
time_t timep;
struct tm *p;
time (timep);
p=gmtime(timep);
printf("%d\n",p-tm_sec); /*獲取當(dāng)前秒*/
printf("%d\n",p-tm_min); /*獲取當(dāng)前分*/
printf("%d\n",8+p-tm_hour);/*獲取當(dāng)前時(shí),這里獲取西方的時(shí)間,剛好相差八個(gè)小時(shí)*/
printf("%d\n",p-tm_mday);/*獲取當(dāng)前月份日數(shù),范圍是1-31*/
printf("%d\n",1+p-tm_mon);/*獲取當(dāng)前月份,范圍是0-11,所以要加1*/
printf("%d\n",1900+p-tm_year);/*獲取當(dāng)前年份,從1900開始,所以要加1900*/
printf("%d\n",p-tm_yday); /*從今年1月1日算起至今的天數(shù),范圍為0-365*/
}
#include "time.h"
time() 取得本地時(shí)間(日期時(shí)間函數(shù))
settimeofday() 設(shè)置當(dāng)前時(shí)間戳
mktime() 將時(shí)間結(jié)構(gòu)數(shù)據(jù)轉(zhuǎn)換成經(jīng)過的秒數(shù)
localtime() 獲取當(dāng)?shù)啬壳皶r(shí)間和日期
gmtime() 獲取當(dāng)前時(shí)間和日期
gettimeofday() 獲取當(dāng)前時(shí)間
ctime() 將時(shí)間和日期以字符串格式表示
asctime() 將時(shí)間日期以字符串格式表示