c语言推算多少天后日期思路,计算多少天后的日期
C語言:計算多少天后的日期
有的時候我會想,再過個100天是幾月幾日呢?也許你能夠翻翻日歷,可是若是是1000天、10000天之后呢?為何咱們不寫個小程序來專門處理這個問題呢?彷佛也不是很復雜……
因而這篇博客應運而生,其實計算的邏輯很簡單,就是使用計算機模擬日期計數,比較有特點的地方在于
switch-case的“很是規”運用——
/ *
* 文件名:nextdate.c
* 做者:于子豪
* 描述:計算多少天后的日期
* 日期:2019-7-30
*/
#include
typedef struct date
{
int year;
int month;
int day;
}Date;
//是不是閏年判斷
int isbissextile(int year)
{
if(((year%100!=0)&&(year%4==0))||year%400==0)
return 1;
else return -1;
}
Date todate(Date today, int days)
{
int day=today.day+days;
while(1)
{
switch(today.month)
{
case 1:
if(day>31) {day-=31;today.month++;}
else {today.day=day;return today;}
case 2:
if(day*isbissextile(today.year)>29) {day-=29;today.month++;}
else if(day*isbissextile(today.year)
else {today.day=day;return today;}
case 3:
if(day>31) {day-=31;today.month++;}
else {today.day=day;return today;}
case 4:
if(day>30) {day-=30;today.month++;}
else {today.day=day;return today;}
case 5:
if(day>31) {day-=31;today.month++;}
else {today.day=day;return today;}
case 6:
if(day>30) {day-=30;today.month++;}
else {today.day=day;return today;}
case 7:
if(day>31) {day-=31;today.month++;}
else {today.day=day;return today;}
case 8:
if(day>31) {day-=31;today.month++;}
else {today.day=day;return today;}
case 9:
if(day>30) {day-=30;today.month++;}
else {today.day=day;return today;}
case 10:
if(day>31) {day-=31;today.month++;}
else {today.day=day;return today;}
case 11:
if(day>30) {day-=30;today.month++;}
else {today.day=day;return today;}
case 12:
if(day>31) {day-=31;today.month=1;today.year++;}
else {today.day=day;return today;}
default:break;
}
}
}
//測試程序
int main(int argc, char *argv[])
{
Date today={1999,1,11};
int days=117+365;
printf("今天是%d.%d.%d:通過%d天后是:",today.year,today.month,today.day,days);
Date nextday=todate(today,days);
printf("%d.%d.%d\n",nextday.year,nextday.month,nextday.day);
return 0;
}
總結
以上是生活随笔為你收集整理的c语言推算多少天后日期思路,计算多少天后的日期的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle lmd0,用strace跟
- 下一篇: 4款精美绝伦的优质软件,一个比一个精彩