當前位置:首頁 » 編程語言 » c語言求第幾天
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言求第幾天

發布時間: 2023-01-29 13:40:17

c語言編寫days函數 計算該日是該年的第幾天怎麼做

#include<stdio.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(y<1||m<1||d<1||d>a[m]+(y%4==0&&y%100>0||y%400==0))

{printf("%d-%d-%d不是一個有效的日期! ",y,m,d);

return -1;

}

for(i=1;i<m;i++)

d+=a[i];

return d;

}

int main()

{int year,month,day,answer;

printf("請輸入一個日期yyyy-mm-dd ");

scanf("%d-%d-%d",&year,&month,&day);

answer=days(year,month,day);

if(answer>0)

printf("%d-%d-%d 是該年的第 %d 天. ",year,month,day,answer);

getch();

return 0;

}

Ⅱ C語言計算某年某月某日 是該年的第幾天

#include
void main()
{
int y,m,d;
int sum=0;
int flog;//標識是否是閏年
printf("請輸入年月日(yyyy-mm-dd)\n");
scanf("%4d-%2d-%2d",&y,&m,&d);
if(( y%4==0 && y%100!=0 ) || y%400==0)
flog=1;
else
flog=0;
while((y<0)||(m>12||m<0)||(d<0||d>31)||((m%2==0)&&(d==31))||((flog==1)&&(m==2)&&(d>28)))
{
printf("input errro!\n");
printf("請輸入年月日(yyyy-mm-dd)\n");
scanf("%4d-%2d-%2d",&y,&m,&d);
}
switch (m-1)
{
case 12: sum+=31;
case 11: sum+=30;
case 10: sum+=31;
case 9: sum+=30;
case 8: sum+=31;
case 7: sum+=31;
case 6: sum+=30;
case 5: sum+=31;
case 4: sum+=30;
case 3: sum+=31;
case 2:
if(flog==1)
//這里改一下
sum+=28;
else
sum+=30;
case 1: sum+=31;break;
//這里加上一個break語句
default:printf("非法月份\n");
break;
}
sum=sum+d;
if(flog==1)
printf("%d is leap year!\n",y);
printf("這一天是這年的第%d天",sum);
}

Ⅲ 怎麼用C語言輸入一個日期,求該日期是該年的第幾天

我大概給個思路,代碼是現寫的 沒調試
先定義每個月的天數,2月按28天算
輸入年月日後,根據年判斷是否閏年(閏年加1天),再從1月加到當月的前一月,再加上日期就可以了

#include <stdio.h>
int month[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
main()
{int yy,mm,dd, days;
int i;
printf("input year:"); scanf("%d", &yy);
printf("input month:"); scanf("%d", &mm);
printf("input day:"); scanf("%d", &dd);
/* 如果大於2月,要做閏年的判斷,忘了,不一定準 */
if( mm > 2 && ((year%4==0 && year%100!=0) || year%400==0) ) days = 1;
else days = 0;

/* 加上前面各整月的天數 */
for(i = 0; i < mm-1; i++) days += month[i];

/* 加上日數 */
days += dd;

printf("This is the %d day of year %d!! ", days, yy);
}

比如輸入 1999 2 1
應該輸出:This is the 32 day of year 1999!!

Ⅳ C語言輸入年月日計算該日是該年第幾天,

//根據用戶輸入的日期計算出該日期是該年的第多少天。
#include
#include
//system("pause")
main()
{
int year,month,day,total,leap; //total總天數 ,leap用於閏年的2月天數
printf("請輸入年 月 日(按順序,中間用空格隔開):");
scanf("%d%d%d",&year,&month,&day);
if((year%4==0 && year%100!=0) || year%400==0) //判斷是否閏年,閏年2月多一天,所以閏年leap為1,平年為leap為0。
{
leap=1;
}
else
{
leap=0;
}
switch(month) //根據月份計算對應的最終天數。
{
case 1: total=day;break;
case 2: total=31*1+day;break;
case 3: total=31*1+28+leap+day;break;
case 4: total=31*2+28+leap+day;break;
case 5: total=31*2+28+leap+30*1+day;break;
case 6: total=31*3+28+leap+30*1+day;break;
case 7: total=31*3+28+leap+30*2+day;break;
case 8: total=31*4+28+leap+30*2+day;break;
case 9: total=31*5+28+leap+30*2+day;break;
case 10: total=31*5+28+leap+30*3+day;break;
case 11: total=31*6+28+leap+30*3+day;break;
case 12: total=31*6+28+leap+30*4+day;break; //12月之前的11個月中有6個31天,4個30天,2月為28天+leap。
}
if(year>=1 && year<=9999 && month>=1 && month<=12 && day>=1 && day<=31) //判斷輸入是否正解,年份最大為9999,可自行更改。
{
printf("\n\t%d月%d日止,%d年已過去%d天。\n\n",month,day,year,total);
system("pause"); //按任意鍵繼續...
}
else
{
printf("\n\t錯誤\n\n");
system("pause"); //按任意鍵繼續...
}
return 0;
}

Ⅳ C語言基礎:求某月某日是這一年的第幾天

#include <stdio.h>

int main()

{int y,m,d,i,n=0,a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

printf("Please input a date (yyyy mm dd): ");

scanf("%d%d%d",&y,&m,&d);

if(y%4==0&&y%100!=0||y%400==0)a[2]++;

for(i=1;i<m;i++)

n+=a[i];

printf("%d-%d-%d is No.%d day of the year. ",y,m,d,n);

getch();

return 0;

}

Ⅵ C語言求第幾天是幾月幾日程序的問題大神們幫幫忙

我改了兩個地方,一個是新聲明了兩個變數moth, day, 然後把指針pmoth和pday指向這兩個變數。 另一個是scanf("%d %d",...),第二個%d後面的空格去掉了。測試過,先輸入回車,然後輸入年月,中間用空格分隔。 main() { int year,yearday,c; int moth, day; int *pmoth; int *pday; pmoth = &moth; pday = &day; printf("請輸入回車以繼續\n"); while((c=getchar())=='\n') { printf("請輸入某年第多少天:"); scanf("%d %d",&year,&yearday); change(year,yearday,pmoth,pday); printf("%d月%d日\n",*pmoth,*pday); } return 0; }

Ⅶ C語言編程:給定一個日期(年/月/日)計算該日期是所在年的第幾天。

//1.程序分析:以3月5日為例,應該先把前兩個月的加起來,然後再加上5天即本年的第幾天,特殊
//情況,閏年且輸入月份大於3時需考慮多加一天。
#include<stdio.h>
void
main(){
int
year,month,day,i,leap;
int
fleap(int
a);
printf("請輸入年月日如(2009,1,1):");
scanf("%d,%d,%d",&year,&month,&day);
//printf("%d,%d,%d\n",year,month,day);
switch(month){
case
1:i=0;break;
case
2:i=31;break;
case
3:i=31+28;break;
case
4:i=31+28+31;break;
case
5:i=31+28+31+30;break;
case
6:i=31+28+31+30+31;break;
case
7:i=31+28+31+30+31+30;break;
case
8:i=31+28+31+30+31+30+31;break;
case
9:i=31+28+31+30+31+30+31+31;break;
case
10:i=31+28+31+30+31+30+31+31+30;break;
case
11:i=31+28+31+30+31+30+31+31+30+31;break;
case
12:i=31+28+31+30+31+30+31+31+30+31+30;break;}
leap=fleap(year);
if(leap==1)
{
i=i+day+1;
printf("\n\n\n\n\n
%d年是潤年\n",year);}
else
{i=i+day;printf("\n\n\n\n\n
%d年不是潤年\n",year);}
printf("%d年%d月%d是%d年的第%d天",year,month,day,year,i);
getch();}
int
fleap(int
a){
int
leap;
if(a%4==0)
{
if(a%100==0)
{
if(a%400==0)
leap=1;
else
leap=0;
}else
leap=1;
}
else
leap=0;
return(leap);}//判斷潤年的

Ⅷ c語言編程:輸入某年某月某日,計算出這一天是該年的第幾天該怎麼解答啊

//輸入年月日,輸出是該年第幾天
#include<stdio.h>
int sum(int month,int day)
{
int days[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int i;
for(i=1;i<month;i++)
day+=days[i];
return(day);
}

int leap(year)
{
int leap=0;
if((year%4==0&&year%100!=0)||(year%400==0))
leap=1;
return leap;
}

void main()
{
int year,month,day,num;
printf("Please input year,month,day:\n");
scanf("%d,%d,%d",&year,&month,&day);
num=sum(month,day);
if(leap(year)&&month>=3)
num++;
printf("It is the %dth day.\n",num);
}

Ⅸ c語言求日期是這一年的第幾天的最簡便寫法是什麼

#include<stdio.h>

structDate{
inty;
intm;
intd;
};

voidmain()
{
Datedate;
intmonth[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
scanf("%d%d%d",&date.y,&date.m,&date.d);
intflag=0; //閏年且月份大於2就改為1
if(((date.y%100!=0)&&(date.y%4==0))||(date.y%400==0)&&date.m>2){
flag=+1;
}
inti;
intwhatday=0; //存放第幾天
for(i=0;i<date.m;i++)
{
whatday+=month[i];
}
whatday+=date.d+flag;
printf("%d ",whatday);
}

等著啊,立馬給你敲出來!