这是我自己写的万年历,里面附有源代码和可执行文件,源代码有一定的解释,有利于初学者学习的
c语言万年历部分代码
#include<stdio.h>
#include<stdlib.h>
int leap[12]={31,29,31,30,31,30,31,31,30,31,30,31};
int noleap[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int judgeleap(int year)
{
if((year%4==0)&&(year%100!=0))return 1;
else if(year%400==0)return 1;
else return 0;
}//判断某年是否为闰年,是则返回1,否则返回0
int judgeweek(int year,int month)
{
long j;
int i;
for(j=0,i=1980;i<year;i++)j+=judgeleap(i)?366:365;
if(judgeleap(year))
{
for(i=1;i<month;i++)j+=leap[i-1];
}
else
{
for(i=1;i<month;i++)j+=noleap[i-1];
}
j++;
return (j+1)%7==0?7:(j+1)%7;
}//判断某年某月1日是星期几 并返回
int judgedays(int year,int month)
{
if(judgeleap(year))return leap[month-1];
else return noleap[month-1];
}//判断某年某月多少天,返回天数
void printfmonth(int week,int days)
{
int i,j=0;
printf("星期一 星期二 星期三 星期四 星期五 星期六 星期日\n");