高階專案9 玩轉日期和時間

2021-07-16 00:11:31 字數 2968 閱讀 1953

任務和**:定義乙個表示時間(包括年、月、日、時、分、秒)的結構體,然後完成下面的功能。

要實現的功能是:

(1)輸入乙個時間(注意各部分資料的取值範圍)將輸入的時間儲存在乙個結構體變數中;

(2)輸出該日在本年中是第幾天(注意閏年問題);

(3)輸出這是這一天中的第幾秒;

(4)輸出這是這一年中的第幾秒;(不要認為這個數荒唐,在計算中需要取隨機數時需要乙個不會重複的「種子數」,這個秒數是常用的。)

(5)求你輸入的時間d天後是哪年哪月哪日,將結果儲存在乙個結構體變數中輸出。

/*

檔名:main.c

完成日期:2016.8.1

問題描述:定義乙個表示時間(包括年、月、日、時、分、秒)的結構體,然後完成下面的功能。

要實現的功能是:

(1)輸入乙個時間(注意各部分資料的取值範圍)將輸入的時間儲存在乙個結構體變數中;

(2)輸出該日在本年中是第幾天(注意閏年問題);

(3)輸出這是這一天中的第幾秒;

(4)輸出這是這一年中的第幾秒;(不要認為這個數荒唐,在計算中需要取隨機數時需要乙個不會重複的「種子數」,這個秒數是常用的。)

(5)求你輸入的時間d天後是哪年哪月哪日,將結果儲存在乙個結構體變數中輸出。

程式輸出:

*/#include //定義儲存輸入資料的結構體

typedef struct

date;

//定義儲存一年第幾天和一天第幾秒的資料

typedef struct

count;

//定義儲存輸入的時間d天後是哪年哪月哪日的資料

typedef struct

addday;

void input(date *date);

void outputday(date *date,count *dayo);

void outputsecond(date *date,count *second);

void outputsecondofyear(count *second);

void outputadddays(date *date,addday *day);

int main()

; date *p1 = &day1;

count time = ;

count *p2 = &time;

addday day2 = ;

addday *p3 = &day2;

printf("請輸入年、月、日、時、分、秒:");

input(p1);

//輸出該日在本年中是第幾天

outputday(p1,p2);

//輸出這是一天的第幾秒

outputsecond(p1,p2);

//輸出這是一年中的第幾秒

outputsecondofyear(p2);

//求你輸入的時間d天後是哪年哪月哪日,將結果儲存在乙個結構體變數中輸出。

outputadddays(p1,p3);

return 0;}/*

函式功能:輸入資料

*/void input(date *date)

void outputday(date *date,count *dayo)

; int days = 0;

int i = 0;

//將前n個月的天數加起來

for(i = 0;i < date->month;i++)

//加上這個月的天數

days += date->day;

//如果是潤年並且大於二月,應該加上1天

if((date->month > 2) && ((date->year %4 == 0 && date->year % 100 != 0) || date->year % 400 == 0))

dayo->day = days;

printf("%d月%d日是%d年的第%d天.\n", date->month, date->day, date->year, days);

return;

}void outputsecond(date *date,count *second)

//加上當前分鐘的秒數

for(i = 0;i < date->minute;i++)

count += date->second;

second->second = count;

printf("這是這一天中的第%d秒.\n",count);

return;

}void outputsecondofyear(count *second)

void outputadddays(date *date,addday *day0)

; int day = 0;

int num = 0;

printf("請輸入您要加上的天數:");

fflush(stdin);

scanf("%d",&num);

day = date->day + num;

if((date->year %4 == 0 && date->year % 100 != 0) || (date->year % 400 == 0))

if(day > d[date->month])

else

}else

printf("你輸入的時間%d天後是%d年%d月%d日!\n",num,day0->year,day0->month,day0->day);

return;

}

程式執行結果:

mysql日期和時間的高階操作函式

1 to days d from days n datadiff d1,d2 to days計算日期d與0000年1月1日之間的天數 from days n 計算0000年1月1日開始n天後的日期 datadiff d1,d2 計算日期d1與d2之間相隔的天數 2 adddate d,n subda...

時間和日期

獲取當前時間戳 import time sticks time.time print sticks import time localtime time.localtime time.time print localtime 用asctime import time localtime time.a...

時間和日期

日期時間 1.系統時間的獲取 from datetime import datetime dt datetime.now print type dt print dt print dt.year,dt.month,dt.day,dt.hour,dt.minute,dt.second,dt.month...