當前位置:編程學習大全網 - 源碼下載 - 如何用c語言做個日歷表

如何用c語言做個日歷表

1、功能要求 :

1)輸入任壹年將顯示出該年的所有月份日期,對應的星期

2)註意閏年情況

其顯示格式要求如下:

1)份:中文英文都可以,

2)下壹行顯示星期,從周日到周六,中英文都可以

3)下壹行開始顯示日期從1號開始,並按其是周幾實際情況與上面的星期數垂直對齊

2、例程:

#include?<stdio.h>?

#include<conio.h>?

#include<stdlib.h>?

int?IsLeapYear(int);//聲明頭文件和函數

void?main()?

{?

int?i;?

int?day;?

int?year;?

int?temp;?

int?temp_i;?

long?int?Year_days?=?0;?

int?Year_Start?=?1;?

int?Per_Year_Days;?

int?month_day[]={31,28,31,30,31,30,31,31,30,31,30,31,29};?//每個月的天數,最後壹個是閏年2月

printf("Please?enter?the?year:?");?

scanf("%d",&year);//輸入年份

while(Year_Start?<?year)?//計算從公元1年1月1日到妳所查詢年份前壹年的天數,是為了以後確定這壹年的第壹天是星期幾

{?

if(?IsLeapYear(?Year_Start?)?)?//確定壹年的天數,閏年為366天,壹般為365天

Per_Year_Days?=?366;?

else?

Per_Year_Days?=?365;?

Year_days?=?Year_days?+?Per_Year_Days;?

Year_Start++;?

}?

for(?temp?=?1;?temp?<=12;?temp++?)//循環輸出每個月的日歷

{?

switch(?temp?)?

{?

case?1:?

printf("?January(%d)\n",year);//如?January(2008)

break;?

case?2:?

printf("?February(%d)\n",year);?

break;?

case?3:?

printf("?March(%d)\n",year);?

break;?

case?4:?

printf("?April(%d)\n",year);?

break;?

case?5:?

printf("?May(%d)\n",year);?

break;?

case?6:?

printf("?June(%d)\n",year);?

break;?

case?7:?

printf("?July(%d)\n",year);?

break;?

case?8:?

printf("?August(%d)\n",year);?

break;?

case?9:?

printf("?September(%d)\n",year);?

break;?

case?10:?

printf("?October(%d)\n",year);?

break;?

case?11:?

printf("?November(%d)\n",year);?

break;?

case?12:?

printf("?December(%d)\n",year);?

break;?

}?

i?=?Year_days?%?7;//計算這個月第壹天是星期幾

printf("Mon?Tue?Wed?Thu?Fri?Sat?Sun\n");?

if(?i?!=?0?)?

for(?temp_i?=?0;?temp_i?<?i;?temp_i++)//第壹天不是星期壹,在前面補空格,本來的空格少了,我加了兩個

printf("");?

day?=?1;?

if(?IsLeapYear(year)?&&?temp?==?2)?//閏年的2月

while(?day?<=?month_day[12]?)?

{?

if(?day?>1?)?

if(?Year_days?%?7?==?0?)?//如果不是1號且昨天是星期天,輸入回車,?換行?

printf("\n");?

if(?day?>=?10?)//如果大於或等於10號則輸出日期並加2個空格,小於10號輸出日期並加3個空格

printf("%d?",day);//開始沒想到這幾行是幹嘛用的,只要壹個輸出就好嘛,後來才想到是用來調整格式的

else//只是他並沒有調整好,我做了下修改,現在很整齊了

printf("%d",day);?

Year_days++;?

day++;?

}?

else?//不是閏年2月的

while?(day?<=?month_day[temp-1])//輸出,同上

{?

if(?day?>?1?)?

if(?Year_days?%?7?==?0?)?

printf("\n");?

if(?day?>=10?)?//理由同上

printf("%d?",day);?

else?

printf("%d",day);?

Year_days++;?

day++;?

}?

printf("\n");?

if(?getch()?==?'q'?)?//輸入q退出程序

exit(0);?

}?

getch();?

}?

int?IsLeapYear(?int?year?)?//判斷是否為閏年

{?

if?((year?%4?==?0)?&&?(year?%?100?!=?0)?||?//年份能被4整除且不能被100整除?或者?能被400整除的為閏年

(year?%?400?==?0)?)?

return?1;?

else?

return?0;?

}

  • 上一篇:比爾蓋茨為什麽會退出微軟集團
  • 下一篇:百度競價問題:這個跳出率該如何降低,跳出率為多少比較合適?
  • copyright 2024編程學習大全網