一段以前写的老代码。
#include<stdio.h> //万年历查询 2006-5-15
#include<stdlib.h>
#include <conio.h>
void PrintSpace(int SpaceNum) //控制输出空格函数
{
for(int i=0;i<SpaceNum;i++)
printf(" ");
}
void main()
{
int year;
int day[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int week;
int TempWeek;
char MonthName[12][10]={"January","February","March","April","May","June","July","August","September","October","November","December"};
char InputChar;
do
{
printf("\n ------------------------- \n"); //主界面
printf(" |\t\t\t |\n");
printf(" | My Calendar |\n");
printf(" | 2006-5-15 |\n");
printf(" |\t\t\t |\n");
printf(" ------------------------- \n\n");
do{ //循环接受输入
printf(" Please enter a year:(format xxxx)");
scanf("%d",&year);
if(year>=0)
{
TempWeek=year-1+(year-1)/4-(year-1)/100+(year-1)/400+1;
break;
}
else
printf(" Enter year error,please enter again!(year>=0)\n\n");
}
while(1);
system("cls"); //清屏
printf("\n ------------------------- \n");
printf(" |\t\t\t |\n");
printf(" | My Calendar |\n");
printf(" | 2006-5-15 |\n");
printf(" |\t\t\t |\n");
printf(" ------------------------- \n");
if((year%4==0&&year%100!=0)||(year%4==0&&year%400==0)) //如果输入为闰年则二月为29天
day[1]++;
printf("\n Calendar of the year %d\n\n",year);
for(int MonthCount=0;MonthCount<12;MonthCount++) //大循环输出十二个月日历
{
if(MonthCount==0) //确定当月第一天星期数
week=TempWeek%7;
else if(MonthCount==1)
week=(TempWeek+day[0])%7;
else if(MonthCount==2)
week=(TempWeek+day[0]+day[1])%7;
else if(MonthCount==3)
week=(TempWeek+day[0]+day[1]+day[2])%7;
else if(MonthCount==4)
week=(TempWeek+day[0]+day[1]+day[2]+day[3])%7;
else if(MonthCount==5)
week=(TempWeek+day[0]+day[1]+day[2]+day[3]+day[4])%7;
else if(MonthCount==6)
week=(TempWeek+day[0]+day[1]+day[2]+day[3]+day[4]+day[5])%7;
else if(MonthCount==7)
week=(TempWeek+day[0]+day[1]+day[2]+day[3]+day[4]+day[5]+day[6])%7;
else if(MonthCount==8)
week=(TempWeek+day[0]+day[1]+day[2]+day[3]+day[4]+day[5]+day[6]+day[7])%7;
else if(MonthCount==9)
week=(TempWeek+day[0]+day[1]+day[2]+day[3]+day[4]+day[5]+day[6]+day[7]+day[8])%7;
else if(MonthCount==10)
week=(TempWeek+day[0]+day[1]+day[2]+day[3]+day[4]+day[5]+day[6]+day[7]+day[8]+day[9])%7;
else
week=(TempWeek+day[0]+day[1]+day[2]+day[3]+day[4]+day[5]+day[6]+day[7]+day[8]+day[9]+day[10])%7;
printf("\t %s %d\n",MonthName[MonthCount],MonthCount+1);
printf(" Mon Tue Wed Thu Fri Sat Sun\n");
printf("=============================\n");
if(week==1) //根据当月第一天星期数调用输出空格函数控制输出空格数
PrintSpace(2);
else if(week==2)
PrintSpace(6);
else if(week==3)
PrintSpace(10);
else if(week==4)
PrintSpace(14);
else if(week==5)
PrintSpace(18);
else if(week==6)
PrintSpace(22);
else
{
PrintSpace(26);
week=7;
}
for(int i=1,int count=week;i<=day[MonthCount];i++) //输出当月日历,计数器当月第一天星期数初始化
{
if(count>7) //计数器为7时控制换行并重新归1
{
printf("\n");
printf(" ");
count=1;
}
if(i<10)
printf("%d ",i); //天数为1位数时输出3个空格
else
printf("%d ",i); //天数为2位数时输出2个空格
count++;
}
printf("\n\n");
}
day[1]=28; //将本次输出年历的二月重新归为28天为下次年历输出做准备
printf(" Continue print other year?(y/n)"); //询问用户继续或退出程序
InputChar=getch();
system("cls");
if(InputChar=='n'||InputChar=='N')
{
printf("\n ------------------------- \n");
printf(" |\t\t\t |\n");
printf(" | My Calendar |\n");
printf(" | 2006-5-15 |\n");
printf(" |\t\t\t |\n");
printf(" ------------------------- \n\n");
printf(" Program exit,bye bye!\n\n");
exit(1);
}
}while(1);
}
分享到:
相关推荐
单片机c语言万年历程序 LCD显示 #define uint unsigned int #define uchar unsigned char sbit DS1302_CLK = P3^6; //实时时钟时钟线引脚 sbit DS1302_IO = P3^7; //实时时钟数据线引脚 sbit DS1302_RST = P1^4...
C语言万年历 可以查看全年月份,具体的某月,及其那一天是星期几。 简单 易懂 适合C初学者
C语言万年历,课程设计啦,提供姐大家学习互动,交流
C语言编写的万年历,实现农历,星期算法,界面实现,有节日,万年历,C
用c语言编写的万年历小程序 可以输入年月查询月历
使用C语言编写的万年历,输入年份和月份在屏幕上打印出这一月的日历,包括与之对应的星期数
C语言实现的万年历课程设计,希望可以与大家共同学习
c语言万年历源代码
c语言万年历源码c语言万年历源码c语言万年历源码c语言万年历源码c语言万年历源码c语言万年历源码c语言万年历源码c语言万年历源码c语言万年历源码c语言万年历源码c语言万年历源码
c语言万年历程序 可查询闰年 某年某号是星期几 等等
不错的c语言万年历例子,初学者可以研究下。
C语言万年历
C语言 万年历
**C语言万年历源码** 本资源提供了一个基于C语言的万年历程序源码,适用于学习、研究和二次开发。该源码利用C语言强大的计算功能和灵活的编程风格,实现了对任意年份和月份的日历展示,同时支持公历与农历的转换...
C语言 万年历嵌套猜拳游戏 课程设计的成品
用C编写的万年历,希望大家帮我改进下。功能还算可以,总觉的烦了些