这个还是挺实用的。。。。
头文件:
#ifndef MAIN_H
#define MAIN_H #include "stdio.h"
#include "math.h"
#include "stdlib.h" //获取某一个月的最大天数
int monthday(int,int ); //判断闰年 ,是返回1,不是返回0
int isleapyear(int ); #endif
主函数:
#include "main.h" int main()
{
int year,month,days,weekday;
int i,d;
while()
{
printf("please input the year:\n");
scanf("%d",&year);
days = year-+(year-)/+(year-)/-(year-)/;//计算某年第一天是星期几 for(month=;month<=;month++)
{
printf("\t\t****%d年--%d月****\n",year,month);
printf("sun\tmon\ttues\twed\tthur\tfir\tsat\t\n");//表头
i = ; d = ;
weekday = (days + )%; //求星期几
while(i<=weekday) //输出前面的空格
{
printf("\t");
i++;
} while(d<=monthday(month,year)) //输出日期
{
weekday = (days + )%;
if(weekday==) //最后一个是星期六,输出之后要换行
printf("%d\n",d);
else //不是星期六的输出后不换行
printf("%d\t",d);
if(d==monthday(month,year))
printf("\n");
d++;
days++;
}
}
} }
功能函数实现:
#include "main.h" int monthday(int month,int year)
{
switch(month)
{
case :
case :
case :
case :
case :
case :
case :
return ;break; case :
case :
case :
case :
return ;break; case :
if(isleapyear(year))
{
return ;//闰年29天
break;
}
else
{
return ;
break;
} } } int isleapyear(int year)
{
if((year%==)&&(year%!=)||(year%==))
return ;
else
return ;
}
效果图: