當前位置:首頁 » 編程語言 » c語言計算星期幾

c語言計算星期幾

發布時間: 2025-05-21 09:28:13

『壹』 c語言:用自定義函數來實現任意輸入一個日期,結果輸出其星期幾

c語言中,通過編寫自定義函數,可以輕松地計算任意輸入日期對應的星期幾。這需要考慮閏年以及每個月的天數。計算方法是累加前幾個月的天數加上當前月的天數。具體實現時,需要定義一個函數來判斷是否為閏年,並根據年份和月份輸入來計算天數。

首先,定義一個數組來存儲每個月的天數。同時,定義一個變數來記錄是否為閏年。接著,使用for循環累加前幾個月的天數,根據輸入的月份調整累加的范圍。最後,將當前月的天數加到累計天數上,得到最終的天數。為了簡化計算,可以使用自定義函數來判斷是否為閏年,從而正確計算2月份的天數。

下面是一個簡單的實現示例:

int mon[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

int leap_year(int year) {

if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {

return 1;

}

return 0;

}

int main() {

int mon[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

int y, m, d, days, leap;

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

leap = leap_year(y);

for (int i = 1, days = 0; i < m; i++) {

if (i == 2 && leap) {

days += 29;

} else {

days += mon[i];

}

}

days += d;

printf("days=%d\n", days);

return 0;

}

通過上述代碼,可以准確地計算出輸入日期對應的天數。進一步地,可以結合星期幾的計算公式,實現計算星期幾的功能。這不僅有助於加深對c語言的理解,還能提高編程技巧。

『貳』 C語言 星期幾

#include<stdio.h>

int main()

{

int n,m;

char a[8][20]={"www","星期一","星期二","星期三","星期四","星期五","星期六","星期日",};

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

for(int i=1;i<=m;i++)//從星期n開始過m天;也就是循環m次;

{//n在[1,7]之間不停的循環;

if(n!=7)//不等於星期日,星期數加一;

n++;

if(n==7)//直到星期數等於星期日

{

n=1;//將星期數又重置為星期一;

}

}

for(int i=0;i<=7;i++)

{

if(n==i)

printf("%s",a[i]);

}

return 0;

}

希望能幫到你,望採納

『叄』 c語言計算日期為星期幾

#include<stdio.h>
int isRn(int num){
if((num%4==0&&num%400!=0)||num%400==0){
return 1;
}else{
return 0;
}
int monthDay(int year,int month){
if(month==1||month==3||month==5
||month==7||month==8||month==10
||month==12){
return 31;
}else if(month==4||month==6||month==9
||month==11)
{
return 30;
}else if(month==2){
if(isRn(int num)==1){
return 29;
}else{
return 28;
}
}
}
void main(){
int sum=0,year,month,day,i,temp,j;
printf("請輸入年份:");
scanf("%d",&year);
while(year<1900){
printf("年份必須從1900年開始!\n\n");
printf("請輸入年份:");
scanf("%d",&year);
}
printf("請輸入月份:");
scanf("%d",&month);
while(month<1||month>12){
printf("月份必須是1到12之間!\n\n");
printf("請輸入月份:");
scanf("%d",&month);
}
printf("請輸入日:");
scanf("%d",&day);
while(day>monthDay(year,month)||day<1){
printf("日必須從1開始,並且不能大於該月的天數!\n\n");
printf("請輸入日:");
scanf("%d",&day);
}
temp=month;
temp-=1;
for(i=1900;i<=year;i++){
for(j=1;j<=12;j++){
if(i==year&&j==temp){
break;
}
sum+= monthDay(year,j);
}
}
sum+=day;
printf("%d年%d月%d日,是星期",year,month,day)
if(sum%7==0){
printf("日。\n");
}else if(sum%7==1){
printf("一。\n");
}else if(sum%7==2){
printf("二。\n");
}else if(sum%7==3){
printf("三。\n");
}else if(sum%7==4){
printf("四。\n");
}else if(sum%7==5){
printf("五。\n");
}else if(sum%7==2){
printf("六。\n");
}
}

熱點內容
傳奇頭頂稱號腳本 發布:2025-05-21 15:49:48 瀏覽:820
21款軒逸哪個配置 發布:2025-05-21 15:46:43 瀏覽:359
android選擇視頻上傳文件 發布:2025-05-21 15:33:53 瀏覽:235
我的世界伺服器必備簡單指令 發布:2025-05-21 15:21:34 瀏覽:409
橋接時ip配置失敗怎麼辦 發布:2025-05-21 15:19:07 瀏覽:476
exe如何反編譯為python 發布:2025-05-21 15:19:04 瀏覽:240
存儲器無法用 發布:2025-05-21 15:17:31 瀏覽:646
webstorm編譯 發布:2025-05-21 14:53:42 瀏覽:368
光遇安卓小王子在哪裡才能見到 發布:2025-05-21 14:52:22 瀏覽:943
彩票源碼定製 發布:2025-05-21 14:38:54 瀏覽:453