本文目錄一覽:
C語言編寫days函數 計算該日是該年的第幾天怎麼做?
#includestdio.h
int days(int y,int m,int d)
{int i,a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
if(y1||m1||d1||da[m]+(y%4==0y%1000||y%400==0))
{printf(“%d-%d-%d不是一個有效的日期!\n”,y,m,d);
return -1;
}
for(i=1;im;i++)
d+=a[i];
return d;
}
int main()
{int year,month,day,answer;
printf(“請輸入一個日期yyyy-mm-dd\n”);
scanf(“%d-%d-%d”,year,month,day);
answer=days(year,month,day);
if(answer0)
printf(“%d-%d-%d 是該年的第 %d 天.\n”,year,month,day,answer);
getch();
return 0;
}
c語言編程日期計算
// _MONTH代表一年裡各月份的天數
int _MONTH[]={{31},{28},{31},{30},{31},{30},{31},{31},{30},{31},{30},{31}};
// days第一參數代表月份,第二個參數代表天數
// 比如11月3日,可以這樣調用days(11,3);
int days(int *m,int *day)
{
int i,md=0;
unsigned int d;
for(i=0;i(*m-1)(i11);i++)
md=md+_MONTH[i];
d=md+(*day);// 總天數累加
return (int)((d+365)-365); //總天數加365天再減365天相當於取餘數的原理(你把365當成整體來對待你就會明白的),你可設想下,比如你輸入的日期是12月31日那麼總天數就肯定是365,而你若不加365天,直接減去365天,這樣一來就不符合邏輯。這是一個邏輯性問題。你可以自己好好琢磨下。
}
C語言編程日期計算
#include stdio.h
#include windows.h
/* 以公元陽曆來計算(非農曆) */
int _MONTH[]={{31},{28},{31},{30},{31},{30},{31},{31},{30},{31},{30},{31}};
int days(int *m,int *day)
{
int i,md=0;
unsigned int d;
for(i=0;i(*m-1)(i11);i++)
md=md+_MONTH[i];
d=md+(*day);
return (int)((d+365)-365);
}
void main()
{
int month,day;
RESET:
month=day=1;
printf(“月份:”);
scanf(“%d”,month);
printf(“日期:”);
scanf(“%d”,day);
while((month1||month12)||(day1||day31))
{
printf(“月份或日期有誤,請重新輸入!\n”);
fflush(stdin);
Sleep(3000);
goto RESET;
}
printf(“今天是今年的第%d天\n”,days(month,day));
}
月份與日期是用戶輸入接受來的,如果你想一運行就顯示當前日期是今年的第幾天。你可以使用time.h頭文件里的有關函數來獲取。獲取後你只需將將強制轉換為int型即可帶入實參。具體如何獲取網上有很多成熟的例子。
這個例子的實現原理與日曆實現的原理一樣:
如日曆的原理如下截圖:
C語言編寫days函數 計算該日是該年的第幾天
#includestdio.h
int days(int y,int m,int d)
{int i,a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
if(y1||m1||d1||da[m]+(y%4==0y%1000||y%400==0))
{printf(“%d-%d-%d不是一個有效的日期!\n”,y,m,d);
return -1;
}
for(i=1;im;i++)
d+=a[i];
return d;
}
int main()
{int year,month,day,answer;
printf(“請輸入一個日期yyyy-mm-dd\n”);
scanf(“%d-%d-%d”,year,month,day);
answer=days(year,month,day);
if(answer0)
printf(“%d-%d-%d 是該年的第 %d 天.\n”,year,month,day,answer);
getch();
return 0;
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/249648.html