本文目錄一覽:
- 1、c語言的發布日期
- 2、c語言如何輸出當前的日期和時間?
- 3、C語言中的時間
- 4、C語言轉換日期的表示形式
- 5、C語言日期格式轉換
c語言的發布日期
//方案—優點:僅使用C標準庫;缺點:只能精確到秒級#include#includeintmain(void){time_tt=time(0);chartmp[64];strftime(tmp,sizeof(tmp),”%Y/%m/%d%X%A本年第%j天%z”,localtime(t));puts(tmp);return0;}size_tstrftime(char*strDest,size_tmaxsize,constchar*format,conststructtm*timeptr);根據格式字符串生成字符串。structtm*localtime(consttime_t*timer);取得當地時間,localtime獲取的結果由結構tm返回返回的字符串可以依下列的格式而定:%a星期幾的縮寫。Eg:Tue%A星期幾的全名。Eg:Tuesday%b月份名稱的縮寫。%B月份名稱的全名。%c本地端日期時間較佳表示字符串。%d用數字表示本月的第幾天(範圍為00至31)。日期%H用24小時制數字表示小時數(範圍為00至23)。%I用12小時制數字表示小時數(範圍為01至12)。%j以數字表示當年度的第幾天(範圍為001至366)。%m月份的數字(範圍由1至12)。%M分鐘。%p以”AM”或”PM”表示本地端時間。%S秒數。%U數字表示為本年度的第幾周,第一個星期由第一個周日開始。%W數字表示為本年度的第幾周,第一個星期由第一個周一開始。%w用數字表示本周的第幾天(0為周日)。%x不含時間的日期表示法。%X不含日期的時間表示法。Eg:15:26:30%y二位數字表示年份(範圍由00至99)。%Y完整的年份數字表示,即四位數。Eg:2008%Z(%z)時區或名稱縮寫。Eg:中國標準時間%%%字符。//方案二優點:能精確到毫秒級;缺點:使用了windowsAPI#include#includeintmain(void){SYSTEMTIMEsys;GetLocalTime(sys);printf(“%4d/%02d/%02d%02d:%02d:%02d.%03d星期%1d\n”,sys.wYear,sys.wMonth,sys.wDay,sys.wHour,sys.wMinute,sys.wSecond,sys.wMilliseconds,sys.wDayOfWeek);return0;}//方案三,優點:利用系統函數,還能修改系統時間//此文件必須是c++文件#include#includeusingnamespacestd;voidmain(){system(“time”);}//方案四,將當前時間折算為秒級,再通過相應的時間換算即可//此文件必須是c++文件#include#includeusingnamespacestd;intmain(){time_tnow_time;now_time=time(NULL);cout
c語言如何輸出當前的日期和時間?
#include stdio.h
#include time.h
int main()
{
time_t t; //time_t是一種類型,定義time_t類型的t
time(t); //取得當前時間
printf(“%s\n”,ctime(t));// ctime(t)將日期轉為字符串並打印
return 0;
}
C語言中的時間
以前實際上用過,很想對C語言中的時間函數了解多一點,趁着這個寒假,查了些資料,大概把我現在能用到的關於時間的操作在此記錄下來。通過幾個函數來熟悉C語言中對時間的操作。(註:以下程序均在VS2010上編譯通過。)①time()函數。可以通過time()函數來獲得日曆時間。其原型為:time_ttime(time_t*timer);一般參數為空,返回值類型time_t是一個長整型數,函數將返回現在的日曆時間,即從一個時間點(所有不同版本的VisualC++都是從1970年1月1日0時0分0秒)到現在的經過的秒數。例子程序:#includestdio.h#includetime.hvoidmain(){time_tlt;lt=time(NULL);printf(“1970年1月1日0時0分0秒到現在經歷了%ld秒\n”,lt);}運行結果(結果與程序運行的時間有關,貼出我此時運行出的結果):1970年1月1日0時0分0秒到現在經歷了1326975564秒請按任意鍵繼續…②clock()函數。C語言中的計時函數。函數原型為:clock_tclock(void);clock()函數返回從“開啟這個程序進程”到“程序中調用clock()函數”時之間的CPU時鐘計時單元數。返回值類型clock_t也是一個長整型數。在time.h頭文件中定義了一個符號常量CLOCKS_PER_SEC,表示一秒鐘會有多少個計時單元。所以通過簡單的數學知識,可以知道在程序中用clock()/CLOCKS_PER_SEC來表示程序從開始到調用clock()函數時用了多少秒。例子程序:#includestdio.h#includetime.hvoidmain(){clock_tlt;for(inti=0;i1000000000;i++);lt=clock();printf(“循環執行1000000000個空操作需要%f秒\n”,(double)lt/CLOCKS_PER_SEC);}運行結果(在不同的機器上運行的結果可能不一樣,下面是在我自己的筆記本上運行的結果):循環執行1000000000個空操作需要3.484000秒請按任意鍵繼續…③使用C庫函數來顯示日期和時間。首先要介紹一下C語言中的一個日期的結構體類型,tm類型。其在time.h中的定義如下:#ifndef_TM_DEFINEDstructtm{inttm_sec;inttm_min;inttm_hour;inttm_mday;inttm_mon;inttm_year;inttm_wday;inttm_yday;inttm_isdst;};#define_TM_DEFINED#endif然後可以介紹有關的函數了。time.h提供了兩種不同的函數將日曆時間(一個長整型數)轉換成我們平時看到的把年月日時分秒分開的時間格式:structtm*gmtime(consttime_t*timer);structtm*localtime(consttime_t*timer);其中gmtime()函數是將日曆時間轉換為世界標準時間(即格林尼治時間),並返回一個tm結構體來保存這個時間,而localtime()函數是將日曆時間轉換為本地時間(在中國地區獲得的本地時間會比世界標準時間晚8個小時)。例子程序:#includestdio.h#includetime.hvoidmain(){structtm*local;time_tt;t=time(NULL);local=localtime(t);printf(“現在北京時間是%d點\n”,local-tm_hour);local=gmtime(t);printf(“世界標準時間是%d點\n”,local-tm_hour);}運行結果(運行結果與運行的時間有關,我是在早上9點多鐘運行這個程序的):現在北京時間是9點世界標準時間是1點請按任意鍵繼續…這樣子我們就可以完全才輸出此刻的年月日時分秒了,當然需要逐個來輸出。其實C庫函數還提供了一個很有用的以固定的時間格式來輸出年月日時分秒的函數。這兩個函數原型如下:char*asctime(conststructtm*timeptr);char*ctime(consttime_t*timer);asctime()函數是通過tm結構來生成具有固定格式的保存時間信息的字符串,而ctime()是通過日曆時間來生成時間字符串。這樣下面的例子程序就容易理解了:#includestdio.h#includetime.hvoidmain(){structtm*local;time_tt;t=time(NULL);local=localtime(t);printf(asctime(local));local=gmtime(t);printf(asctime(local));printf(ctime(t));}運行結果(我是在早上9點多運行這個程序的):FriJan2009:55:562012FriJan2001:55:562012FriJan2009:55:562012請按任意鍵繼續…C語言還可以以我們規定的各種形式來規定輸出時間的格式。要用到時可以查閱相關的資料,限於篇幅,就介紹到這裡。④這裡介紹計算持續的時間長度的函數。之前已經介紹了使用clock()函數的例子,它可以精確到毫秒級。其實我們也可以使用difftime()函數,但它只精確到秒。該函數的定義如下:doubledifftime(time_ttime1,time_ttime0);例子程序:#includestdio.h#includetime.h#includestdlib.hvoidmain(){time_tstart,end;start=time(NULL);for(inti=0;i1000000000;i++);end=time(NULL);printf(“這個循-環用了%f秒\n”,difftime(end,start));}運行結果:這個循環用了3.000000秒請按任意鍵繼續…⑤最後介紹mktime()函數。原型如下:time_tmktime(structtm*timer);可以使用函數將用tm結構表示的時間轉換為日曆時間。其返回值就是轉換後的日曆時間。這樣我們就可以先制定一個分解時間,然後對這個時間進行操作。下面的例子用來計算2012年1月20日是星期幾:#includetime.h#includestdio.h#includestdlib.hintmain(void){structtmt;time_tt_of_day;t.tm_year=2012-1900;t.tm_mon=0;t.tm_mday=20;t.tm_hour=0;t.tm_min=12;t.tm_sec=1;t.tm_isdst=1;t_of_day=mktime(t);printf(ctime(t_of_day));return0;}運行結果:FriJan2000:12:012012請按任意鍵繼續…
C語言轉換日期的表示形式
這個可以嗎?
#include
void
main()
{
char
num[8];//定義一個字符數組num
int
i;//定義整型變量
printf(“請輸入正確的日期!格式為:xxxxxxxx\n”);
for(i=0;i=8;i++)//循環語句,讀入8個字符,依次放到數組num中,作為8個元素
num[i]=getchar();
for(i=0;i4;i++)//輸出前四個字符(年份)
putchar(num[i]);
putchar(‘_’);
for(;i6;i++)//輸出(月份)
putchar(num[i]);
putchar(‘_’);
for(;i8;i++)//輸出(日)
putchar(num[i]);
putchar(‘\n’);//回車
}
C語言日期格式轉換
1、c里沒有相應的庫,只能用asctime函數轉換成一種固定格式。如果要轉換,可以用sprintf把各種數據以“
1980-01-02
02:03:55
”
這種標準格式,格式到一個字符串中。
2、asctime函數:
原型:char*
asctime
(const
struct
tm
*
timeptr);
功能:把timeptr指向的tm結構體中儲存的時間轉換為字符串;
頭文件:time.h;
返回值:一個固定格式的字符串。字符串格式為:www
mmm
dd
hh:mm:ss
yyyy。其中www為星期,mmm為月份,dd為日,hh為時,mm為分,ss為秒,yyyy為年份。
3、例程:
#include
#include
int main(){
time_t rawtime;
struct tm * timeinfo;
time(rawtime);
timeinfo = localtime(rawtime);//使用localtime函數把秒數時間rawtime轉換為本地時間以tm結構體保存,並把tm結構體地址儲存到timeinfo當中
printf(“當前日期為: %s”,asctime(timeinfo));//使用asctime函數把tm結構體中儲存的時間轉換為字符串,並輸出
return 0;
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/293540.html