當前位置:首頁 » 編程語言 » c語言日期比較

c語言日期比較

發布時間: 2023-03-18 15:26:07

A. c語言判斷兩個日期大小

c語言時間函數:
1、獲得日歷時間函數:
可以通過time()函數來獲得日歷時間(Calendar Time),其原型為:time_t time(time_t * timer);
如果已經聲明了參數timer,可以從參數timer返回現在的日歷時間,同時也可以通過返回值返回現在的日歷時間,即從一個時間點(例如:1970年1月1日0時0分0秒)到現在此時的秒數。如果參數為空(NUL),函數將只通過返回值返回現在的日歷時間,比如下面這個例子用來顯示當前的日歷時間:
2、獲得日期和時間函數:
這里說的日期和時間就是平時所說的年、月、日、時、分、秒等信息。從第2節我們已經知道這些信息都保存在一個名為tm的結構體中,那麼如何將一個日歷時間保存為一個tm結構的對象呢?
其中可以使用的函數是gmtime()和localtime(),這兩個函數的原型為:
struct tm * gmtime(const time_t *timer);
struct tm * localtime(const time_t * timer);
其中gmtime()函數是將日歷時間轉化為世界標准時間(即格林尼治時間),並返回一個tm結構體來保存這個時間,而localtime()函數是將日歷時間轉化為本地時間。比如現在用gmtime()函數獲得的世界標准時間是2005年7月30日7點18分20秒,那麼用localtime()函數在中國地區獲得的本地時間會比世界標准時間晚8個小時,即2005年7月30日15點18分20秒。

B. C語言判斷兩個日期大小

程序沒有問題,可以正確輸出較大的數(特別注意一點:由於你的明握scanf()中的格式控制符是用激枯慶逗號分隔的,所以在輸入數字時也敗轎要用逗號分隔),至於你說的「穩定顯示出來...執行完畢後按任意鍵繼續」這個問題只需要包含頭文件stdlib.h之後在main()結尾,return
0;之前加上system("pause");即可,原程序按此做如下修改:
//---------------------------------------------------------------------------
#include
#include
int
main(void)
{
int
x,y,max;
printf("please
input
x,y=");
scanf("%d,%d",&x,&y);
if(x>y)
max=x;
else
max=y;
printf("the
max
is=%d\n",max);
system("pause");
return
0;
}
//---------------------------------------------------------------------------

C. c語言比較哪個日期早的源碼

您的採納是我們的動沖褲力(⊙v⊙)

#include<stdio.h>

intmain()
{
inty1,m1,d1;
inty2,m2,d2;

printf("請輸入要比較的日期,格式如:年-月-日(XXXX-XX-XX): ");

printf("請輸入第一個日期:");
scanf("%d-%d-%d",&y1,&m1,&d1);

printf("請輸入第二個日期:");
scanf("%d-%d-%d",&y2,&m2,&d2);

if(y1<y2)/*依次比較年月日*/
printf("第一個日期早! ");
elseif(y1>y2)
printf("第二個日期早! ");
else
{
if(m1<m2)
printf("第一個日期早! ");
elseif(m1>m2)
歷判指printf("第二個日期早! ");
else
{
if(d1<肢配d2)
printf("第一個日期早! ");
elseif(d1>d2)
printf("第二個日期早! ");
else
printf("兩個日期一樣! ");
}
}

return0;
}

VC6下測試:


D. C語言 文件中時間與當前系統時間 時間差比較(比較結果返回為天數)最好是調用子函數解決

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

intdays(char*begin_time)//格式:"20180914000000"//2018-9-140點0分0秒
{
structtmtm1;
time_ttime1,time_now;
sscanf(begin_time,"%4d%2d%2d%2d%2d%2d",&tm1.tm_year,&tm1.tm_mon,&tm1.tm_mday,&tm1.tm_hour,&tm1.tm_min,&tm1.tm_sec);
tm1.tm_year-=1900;
tm1.tm_mon--;
tm1.tm_isdst=-1;
time1=mktime(&tm1);//構造time1

time_now=time(NULL);
tm1=*(localtime(&time_now));//當時日期
return(time_now-time1)/(3600*24);//返回相差天數
}

intmain()
{
chartime_in_file[30]={"20180914000000"};
printf(" %d",days(time_in_file));
return0;
}

E. C語言 請提供一個兩個時間的比較函數

可以使用CLOCK()函數:
clock()是C/C++中的計時函數,而與其相關的數據類型是clock_t。在MSDN中,查得對clock函數定義如下:
clock_t clock(void) ;
這個函數返回從「開啟這個程序進程」到「程序中調用clock()函數」時之間的CPU時鍾計時單元(clock tick)數,在MSDN中稱之為掛鍾時間(wal-clock);若掛鍾時間不可取,則返回-1。其中clock_t是用來保存時間的數據類型,在time.h文件中,可以找到對它的定義:
#ifndef _CLOCK_T_DEFINED
typedef long clock_t;
#define _CLOCK_T_DEFINED
#endif
很明顯,clock_t是一個長整形數。在time.h文件中,還定義了一個常量CLOCKS_PER_SEC,它用來表示一秒鍾會有多少個時鍾計時單元,其定義如下:
#define CLOCKS_PER_SEC ((clock_t)1000)
可以看到每過千分之一秒(1毫秒),調用clock()函數返回的值就加1。下面舉個例子,可以使用公式clock()/CLOCKS_PER_SEC來計算一個進程自身的運行時間:
void elapsed_time()
{
printf("Elapsed time:%u secs.\n",clock()/CLOCKS_PER_SEC);
}

F. C語言判斷兩個日期的前後問題

if(dt1.year!=dt2.year)
{
if(dt1.year>dt2.year)return1;//判斷年相等否
if(dt1.year<dt2.year)return-1;
}

比如這里,如果兩個year相等,就沒有返值(當然,這是編譯器的判斷邏輯),編譯器不會根據你上下文去統計邏輯的,因此會認為你if有返值,沒有else語句中的返值。你將兩個邏輯中的連續if改成if else應該就沒問題了。


其實,如果年月日的規則是嚴格的,那麼語句不用這么麻煩,直接判斷

year*365+month*30+day 的大小即可判定兩個日期的關系了。

G. 用c語言比較當前系統日期與我輸入的日期大小怎麼寫代碼

#include<time.h>
#include<stdio.h>

voidmain(void)
{
time_ttimep;
structtm*p;
intin_time[3];
int now_time[3];
inti;

printf("輸入年-月-日:");
scanf("%d-%d-%d",&in_time[0],&in_time[1],&in_time[2]);

time(&timep);
p=gmtime(&timep);

now_time[0]=1900+p->tm_year;
now_time[1]=1+p->tm_mon;
now_time[2]=p->tm_mday;

for(i=0;i<3;i++)
if(in_time[i]>now_time[i])
{
printf("你輸入的日期大 ");
break;
}
elseif(in_time[i]<now_time[i])
{
printf("你輸入的日期小 ");
break;
}
else
continue;
if(i==3)
printf("兩個日期一樣大 ");
// printf("%d ",p->tm_sec);/*獲取當前秒*/
// printf("%d ",p->tm_min);/*獲取當前分*/
// printf("%d ",8+p->tm_hour);/*獲取當前時,這里獲取西方的時間,剛好相差八個小時*/
// printf("%d ",p->tm_mday);/*獲取當前月份日數,范圍是1-31*/
// printf("%d ",1+p->tm_mon);/*獲取當前月份,范圍是0-11,所以要加1*/
// printf("%d ",1900+p->tm_year);/*獲取當前年份,從1900開始,所以要加1900*/
// printf("%d ",p->tm_yday);/*從今年1月1日算起至今的天數,范圍為0-365*/

}

熱點內容
c語言中a10什麼意思 發布:2024-04-27 10:45:43 瀏覽:57
物聯網中ftp是什麼意思 發布:2024-04-27 10:41:17 瀏覽:985
銀行密碼保護在哪裡 發布:2024-04-27 10:25:23 瀏覽:188
tomcat源碼導入eclipse 發布:2024-04-27 10:25:15 瀏覽:193
android的api 發布:2024-04-27 10:23:39 瀏覽:682
官式訪問 發布:2024-04-27 10:04:00 瀏覽:521
國產高配置有哪些 發布:2024-04-27 09:18:26 瀏覽:947
建行手機app忘記密碼如何修改 發布:2024-04-27 08:58:59 瀏覽:393
蟻群演算法的數學模型 發布:2024-04-27 08:58:39 瀏覽:994
androidactivity生命 發布:2024-04-27 07:33:48 瀏覽:84