|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
用C语言写了一个万年历出来,我是新手,请大家多多指教指教。
有什么不足或者语法毛病的可以指出来。
- #include<stdio.h>
- year_days(int date[3]) /*计算由公元1年到本年的日数*/
- {
- int days,a,b;
- a=(date[0]-1)/4+(date[0]-1)/400-(date[0]-1)/100;
- b=date[0]*365;
- days=a+b;
- return days;
- }
- month_days(int date[3]) /*计算由1月开始到本月的日数*/
- {
- if(date[1]==1)return 0;
- if(date[1]==2)return 31;
- if(date[1]==3)return 59;
- if(date[1]==4)return 90;
- if(date[1]==5)return 120;
- if(date[1]==6)return 151;
- if(date[1]==7)return 181;
- if(date[1]==8)return 212;
- if(date[1]==9)return 243;
- if(date[1]==10)return 273;
- if(date[1]==11)return 304;
- if(date[1]==12)return 334;
- }
- get_days(int date[3]) /*计算总日子数*/
- {
- int year_days(int);
- int month_days(int);
- int days;
- days=year_days(date)+month_days(date)+date[2];
- if(date[0]%100!=0&&date[0]%4==0||date[0]%400==0)
- if(date[1]>2)days++;
- return days;
- }
- get_mondays(int date[3]) /*计算每月的日数*/
- {
- if(date[1]==1)return 31;
- if((date[2]%100!=0&&date[2]%4==0||date[2]%400==0)&&date[1]==2)return 29;
- if(date[1]==2)return 28;
- if(date[1]==3)return 31;
- if(date[1]==4)return 30;
- if(date[1]==5)return 31;
- if(date[1]==6)return 30;
- if(date[1]==7)return 31;
- if(date[1]==8)return 31;
- if(date[1]==9)return 30;
- if(date[1]==10)return 31;
- if(date[1]==11)return 30;
- if(date[1]==12)return 31;
- }
- main()
- {
- int get_days(int); /*声明函数*/
- int get_mondays(int);
- int date[3],days,mondays;
- int i;
- printf("please Please enter a date\n"); /*输入年月日*/
- printf("year:");
- scanf("%d",&date[0]);
- printf("month:");
- scanf("%d",&date[1]);
- printf("day:");
- scanf("%d",&date[2]);
- days=get_days(date);
- mondays=get_mondays(date);
- printf(" %d/%d/%d\n",date[0],date[1],date[2]);
- printf("=============================\n");
- printf(" sun mon tue wed thu fri sat\n");
- for(i=1;i<=(days-date[2])%7;i++) /*总日数减去日再除7求余,可以计算出每月开头空了的天数*/
- {
- printf(" ");
- }
- for(i=1;i<=mondays;i++)
- {
- if(i<10)printf(" ");
- if(i==date[2])
- printf("[%d]",i);
- else
- printf(" %d ",i);
- if((days-date[2]+i)%7==0)
- printf("\n");
- }
- printf("\n");
- system("pause");
- }
复制代码
|
|