當前位置:首頁 » 編程語言 » 日期怎麼比大小在c語言里
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

日期怎麼比大小在c語言里

發布時間: 2023-06-01 10:35:24

A. c語言的比較兩個時間的函數

1、方法一:若時間為結構體變數,比較兩個時間的大小,而且不能改變時間的值,可以是:
int timecmp(date_t* date1,date_t* date2)
{
if(date1-> year==date1-> year)
return memcmp(date1, date2,sizeof(date_t));
else
return date1-> year-date2-> year
}
2、方法二:
long getTimeInterval(const char *t1, const char *t2) {
struct tm tm1, tm2;
time_t start, end;
double diff;
memset(&tm1, 0, sizeof(tm1));
memset(&tm2, 0, sizeof(tm2));
strptime(t1, "%Y%m%d", &tm1);
start = mktime(&tm1);
strptime(t2, "%Y%m%d", &tm2);
end = mktime(&tm2);
diff = difftime(start, end);
return d2l(diff);
}
調用:
printf("getTimeInterval=[%ld]\n", getTimeInterval("20101221", "20110326"));
printf("getTimeInterval=[%ld]\n", getTimeInterval("20101221", "20990326"));
第一行輸出:[-8208000]
第二行輸出:[1292860801]
3、補充: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語言如何比較時間的大小

用字元串比較函數strcmp()
如孝叢飢
#include<stdio.h>
#include"string.h"
void main()
{
int n;
n=strcmp("2010-04-30","2010-05-02");/巧返/再根據n進行判斷
printf("%d"鄭稿,n);
}

C. C語言 日期(年月日 ) 排序

#include "stdio.h"
#include "string.h"

//日期結構體
struct date
{
int y;//年
char m[4];//月
int d;//日
};

//比較年份
int cmpY(int a, int b)
{
//年份在90-10之間,代表1990年到2010年
if (a < 100 && a > 10)
a +=1900;
else
a += 2000;
if (b < 100 && b > 10)
b +=1900;
else
b += 2000;

if (a > b)
return 1;
else if (a == b)
return 0;
else
return -1;
}

//比較月份
int cmpM(char *a, char *b)
{
//定義字元串數組,表示12個月份的英文
char m[12][4] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
int i, j;
for (i = 0; i < 12; i++)
if (strcmp(a,m[i]) == 0)
break;

for (j = 0; j < 12; j++)
if (strcmp(a,m[j]) == 0)
break;

if (i < j)
return 1;
else if (i == j)
return 0;
else
return -1;
}

//綜合年,月,日比較
int cmpYMD(struct date a, struct date b)
{
if (cmpY(a.y,b.y) == -1)
return -1;
else if (cmpY(a.y,b.y) == 1)
return 1;
else
{
if (cmpM(a.m,b.m) == -1)
return -1;
else if (cmpM(a.m,b.m) == 1)
return 1;
else
{
if (a.d > b.d)
return 1;
else if(a.d == b.d)
return 0;
else
return -1;
}
}
}
void main()
{
//定義結構體數組
struct date dt[3]={
{ 0, "Jan", 11},
{99, "Feb", 22},
{ 8, "Mar", 2}};
struct date dtTemp;
int i, j;

//排序
for (i = 0; i < 3-1; i++)
for (j = i+1; j < 3; j++)
if (cmpYMD(dt[i],dt[j]) == 1)
{
dtTemp = dt[i];
dt[i] = dt[j];
dt[j] = dtTemp;
}

//輸出排序過後的日期
for (i = 0; i < 3; i++)
{
printf("%d %s %d\n",dt[i].y,&dt[i].m,dt[i].d);
}
}

D. 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);
}

E. 如何用C語言判斷日期是否大於2003年6月17日 急急

首先定義一個SYSTEMTIME型變數lt.
包含的頭文件為 <windows.h>
然後使用歲山函數 GetLocalTime(<).
此時lt里就含有日期時間信息.
例如: 年: lt.wYear
月: lt.wMonth
日: lt.wDay

然後在程序中進行if判扒亮斷即可乎此中.

F. 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;
}
//---------------------------------------------------------------------------

G. C# 比較時間大小

C#裡面比較時間大小三種方法
DateTime t1 = new DateTime(100);
DateTime t2 = new DateTime(20);

if (DateTime.Compare(t1, t2) > 0) Console.WriteLine("t1 > t2");
if (DateTime.Compare(t1, t2) == 0) Console.WriteLine("t1 == t2");
if (DateTime.Compare(t1, t2) < 0) Console.WriteLine("t1 < t2");
C語言是一種結構化編程語言。 它層次清晰,便於按模塊化方式組織程序,易於調試和維護。C語言的表現能力和處理能力極強。它不僅具有豐富的運算符和數據類型,便於實現各類復雜的數據結 構。它還可以直接訪問內存的物理地址,歷鍵進行位(bit)一級的操作。由於C語言實現了對硬體的編程操作,因此C語言集春灶高級語言和低級語言的功能於一體。既 可用於系統軟體的開發,也適合於應用軟扒爛扮件的開發。此外,C語言還具有效率高,可移植性強等特點。因此廣泛地移植到了各類各型計算機上,從而形成了多種版本 的C語言。

H. 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秒。

I. 問題 F: 日期的大小 要C語言

#include<stdio.h>宏虧頃

int main()

{ int y1,m1,d1,y2,m2,d2;

scanf("蔽陸%d-%d-%d",&y1,&m1,&d1);

scanf("%d-%d-%d",&y2,&m2,&d2);

if(y1>y2||y1==y2&&m1>m2||y1==y2&&m1==m2&&d1>d2)

printf("%d-%d-%d "空大,y1,m1,d1);

else printf("%d-%d-%d ",y2,m2,d2);

return 0;

}

J. C語言下如何獲得當前時間,並顯示出來 然後比較兩個時間的大小

#include <stdio.h>
#include <conio.h>鉛渣
#include <time.h>
#include <dos.h>

void main()
{
time_t t1,t2;
struct tm *tm;

t1=time(NULL);
tm=localtime(&t1);
printf("%04d-%02d-%02d %02d:%02d:%02d\n",tm->tm_year+1900,
tm->tm_mon+1,tm->tm_mday,tm->tm_hour,tm->螞灶tm_min,tm->tm_sec);
sleep(10);
t2=time(NULL);
tm=localtime(&t2);
printf("%04d-%02d-%02d %02d:%02d:%02d\n",tm->悶激扮tm_year+1900,
tm->tm_mon+1,tm->tm_mday,tm->tm_hour,tm->tm_min,tm->tm_sec);
printf("%d\n",t2-t1);
getch();
}