當前位置:首頁 » 編程語言 » c語言年月日的計算
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言年月日的計算

發布時間: 2023-02-01 01:40:53

A. 用c語言寫一個函數,給出年月日,計算該日是該年的第幾天

#include <stdio.h>

int main()
{
int year,month,day;//年月日
int judge,i;
int sum=0;//標記天數
int date[2][12]={
{31,28,31,30,31,30,31,31,30,31,30,31},
{31,29,31,30,31,30,31,31,30,31,30,31}};//儲存閏年和非閏年每一月的天數
printf("輸入年月日:");
scanf("%d %d %d",&year,&month,&day);

judge=(year%4==0)||(year%400==0 && year%100!=0);
//判斷年份是不是閏年 是閏年judge就是1;否則就是0

for(i=0;i<month-1;i++)//加month之前的所有天數
sum+=date[judge][i];
sum+=day;//加當天月份的天數day

printf("它是%d年中的第%d天\n",year,sum);
return 0;
}

B. C語言程序,輸入年月日算出當天星期幾

先做一個函數,計算1900年1月1日到該天的天數,然後用膜除求出星期幾並輸出。

具體代碼如下:

#include<stdio.h>
#include<stdlib.h>

intDay(inty,intm,intd);

intmain(intargc,char*argv[]){
inti;//循環變數
intyear,month,day;//讀取用戶輸入的年月日
intdays;//儲存從1900-1-1到該天的天數
intweek=0;//儲存求余後的星期
//字元串組合輸出星期
charb[]={"星期"};
charc[7][4]={"日","一","二","三","四","五","六"};

loop:printf("請輸入年月日:(空格分隔) ");
scanf("%d%d%d",&year,&month,&day);
days=Day(year,month,day);
//增強程序的健壯性
if(days==-1)
{
printf("輸入格式有誤,");
fflush(stdin);//防止用戶輸入字母等其他非數字字元
gotoloop;
}
else
{
week=days%7;//用求余計算星期幾
printf("%d年%d月%d日是%s%s ",year,month,day,b,c[week]);
}
system("pause");
return0;
}

//函數功能:輸入年月日,輸出1900-1-1到該天的天數,-1位輸入不合法
intDay(inty,intm,intd)
{
inti;
intr=0;//儲存1900到該天的閏年個數
inta[]={31,28,31,30,31,30,31,31,30,31,30};//m給每出月的天數

if(y>=1900&&m>0&&m<13&&d>0&&d<32)
{
for(i=1900;i<=y;i++)//計算閏年的個數
{
if(i%400==0||i%100!=0&&i%4==0)
r++;
}
for(i=0;i<m-1;i++)//統計當年1月1日到當月的天數
{
d+=a[i];
}
if((y%400==0||y%100!=0&&y%4==0)&&m<3)//如果當年是閏年但不到二月就不能算進去
r--;
return365*(y-1900)+r+d;
}
else
return-1;
}

C. c語言年月日計算

首先,你的閏年判斷就有問題。教你個口訣:「四年一潤,一百年不潤,四百年再潤」。

其實就可以用if(yr%4==0||yr%100!=0&&yr%400==0){那麼是閏年}

你的檢驗判斷也可以利用mont數組的,首先判斷是不是在閏年,然後判斷輸入days是不是大於的mont[mn](如果是閏年要判斷二月+1)。

D. c語言結構體計算年月日問題,問題如圖

這個相對比較簡單 教你吧,你先建立兩個數組,一個寫閏年每月日期數,一個寫平年的。判斷時,先判斷閏年還是平年,然後在一個一個月判斷,記得要用個記錄器,把已經算了的日期數加起來,最後加完就是一年第幾天了。

給你參考個程序

#include<stdio.h>
constintrun_everymonth_days[]={0,31,29,31,30,31,30,31,31,30,31,30,31},
pin_everymonth_days[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
intyear,month,day,number;//全局變數初始值本身就會是0不用再給number賦值
intrun()
{
Qfor(inti=1;i<month;i++)//判斷執行到輸入月份前一月
Qnumber+=run_everymonth_days[i];
:number+=day;
}
intping()
{
9for(inti=1;i<month;i++)
5number+=pin_everymonth_days[i];
3number+=day;
}
intmain()
{
4scanf("%d%d%d",&year,&month,&day);
3if((!(year%4)&&year%100)||!(year%400))
8run();
1elseping();
4printf("%d ",number);
3return0;
}

E. C語言,求年月日

首先判定年份是不是閏年,其次你使用各數組把年份的月存儲下來(分閏年和平年),然後用一個循環來疊加和你輸入的第二個數做筆記如果小了繼續疊加,在疊加的過程中使用一個計數器,那個就是月份,當疊加的數大於那個天數了,再做差計算式那個月的第幾天!

F. C語言日歷的年月日,算出某月某日是一年的多少天問題,

看了你得,寫的太復雜了,根據題意重寫了一個,希望能幫助你

#include<stdio.h>

void main()

{

int year,m,d,day,days=0,i;

printf("請輸入年月日: ");

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

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

{

switch(i)

{

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:day=31;break;

case 4:

case 6:

case 9:

case 11:day=30;break;

case 2:if(year%4==0&&year%100!=0||year%400==0)

{day=29;break;}

else

{day=28; break;}

}

days+=day;

}

printf("是該年的第%d天",days+d);

}

G. C程序:給出年月日,計算該日是該年的第幾天

void main()
{
int year, month, day;
int days;
printf("請輸入日期(年 月 日):");

while(1)
{
scanf("%d,%d,%d", &year, &month, &day);
if ((month<13)&&(month>0)&&(day<32)&&(day>0))
break;
system("cls");
printf("輸入錯誤,請重新輸入日期(年 月 日):");
}
printf("%d年%d月%d日", year, month, day);
days = sum_day(month, day);
if(leap(year) && month>=3)
days = days + 1;
printf("是該年的第%d天.\n", days);
getch();
}

H. 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);}//判斷潤年的