万年历打印系统(c语言程序)
PAGE
PAGE 1
#include
#include
#include
#include
void yi_nian();//输出当年日历
int leap(int year);//判断给定年份是否是闰年
long int f(int year,int month);
long int g(int month);
long int n(int year,int month,int day);
int w(int year,int month,int day);
void ch_month_1(int i);//用switch语句将数字转化为英文
int Yi_yue_time();//输出当月日期及当天时间
void getcl(int a[]);//计算当天时间
void printcal(int a[]);//计算当月日期
int date[12][6][7];
int day_tbl[ ][12]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};
FILE *fp;
int main()
{
yi_nian();
Yi_yue_time();
return 0;
}
//输出当年日历
void yi_nian()
{
int b[7];
int sw,leap,i,j,k,wd,day;
int year;
char title[]="SUM MON TUE WED THU FRI SAT";
getcl(b);
fp=fopen("D:\\rili.txt","w+");
if(!fp)
{
printf("file cannot be opened");
exit(0);
}
year=b[0];
sw=w(year,1,1);
leap=year%4==0&&year%100||year%400==0;
for(i=0;i<12;i++)
for(j=0;j<6;j++)
for(k=0;k<7;k++)
date[i][j][k]=0;
for(i=0;i<12;i++)
for(wd=0,day=1;day<=day_tbl[leap][i];day++)
{
date[i][wd][sw]=day;
sw=++sw%7;
if(sw==0) wd++;
}
fprintf(fp,"当年日历:\n");
fprintf(fp,"\n *The Calendar of Year %d* \n ",b[0]);//输出当年日历的表头
printf("当年日历:\n");
printf("\n *The Calendar of Year %d* \n ",b[0]);
for(i=0;i<6;i++)
{
for(wd=0,k=0;k<7;k++)
wd+=date[i][5][k]+date[i+6][5][k];
wd=wd?6:5;
fprintf(fp,"\n ");
//用switch语句将数字转化为英文
switch(i+1)
{
case 1:fprintf(fp,"January ");break;
case 2:fprintf(fp,"Februry ");break;
case 3:fprintf(fp,"March ");break;
case 4:fprintf(fp,"April ");break;
case 5:fprintf(fp,"May ");break;
case 6:fprintf(fp,"June ");break;
case 7:fprintf(fp,"July ");break;
case 8:fprintf(fp,"August ");break;
case 9:fprintf(fp,"September");break;
case 10:fprintf(fp,"October ");break;