c语言万年历编程解释
#include
intleap(intyear)//平闰年的判断
if((year%4==0)&&(year%100!=0)||(year%400==0))
return1;
return0;
voidshow(intyear,intmonth)//显示指定年制定月的日历
//定义12个月的英文字符串
constcharmonth_str[][4]={"","Jan","Feb","Mar","Apl",
"May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};
//定义各个月的天数,二月为28天,平年
constintmonth_day[]={30,31,28,31,30,31,30,31,31,30,31,30,31};
//分别定义:
inti;//该变量在后续代码中经常被使用,为计数变量
intj;//同上
intwdays;//该变量是星期数(1至7)分别代表星期(一至日)
intmdays;//记录所查询的月份的天数,注意该天数在一开始计算总天数days的时候并未被算入
intdays;//记录所查询年月(从公元元年开始)的总天数,比如2008年12月的days总天数计算方式为:先计算从公元1年到2007年的总天数,再加上2008年前11个月的总天数,至此总天数days的值还不是正确的,2008年12月份的天数尚未加上,这一点在(向控制台)显示日历的过程中将逐一加上,这一处理方法也是程序实现的一个必须性要求
//从公元元年开始计算到第(year-1)年的总的天数
for(i=1,days=0;i
if(leap(i))//闰年
days+=366;
days+=365;//平年
//再加上第year年前(month-1)个月的总天数
for(i=1;i
if(i==2&&leap(year))
days+=29;
days+=month_day[i];
printf("%s(%d)\n",month_str[month],year);//显示月(年)
printf("MonTueWedThuFriSatSun\n");//显示日历表头
wdays=days%7;//此即公式核心,计算星期序号,星期天为星期七
for(j=0;j
printf("%4c",);//控制台显示格式需要即空格打印
//定义mdays的值
if(month==2&&leap(year))
mdays=29;
mdays=month_day[month];
//其中i为月的号数
for(i=1;i<=mdays;i++)
if(i>1&&days%7==0)//此即日历公式核心,它是以星期为单元计算日历,可见公元元年元旦为星期一
printf("\n");//格式需要换行
printf("%4d",i);
days=days+1;//此处让days(不是完整的总天数)变量逐一递增到真正的总天数
printf("\n---------------------------\n");
/*main()
intyear,month;
printf("输入年和月份:");
scanf("%d%d",&year,&month);//该程序的一个明显的bug:对输入的年月数据没有进行必要的数据约束检查,比如我们总不能输入-200913吧?这样程序一下就崩溃了
show(year,month);
getchar();//暂停,让控制台显示的内容停留,键入任意键将继续
//给个新的main()
voidmain()
intyear,month;
charc;
printf("\n输入年和月份:");
scanf("%d%d",&year,&month);
if(year<1||month<1||month>12)//这三个条件缺一不可
//错误信息提示
printf("年月数据输入有误,请检查!");
show(year,month);
printf("\n\n继续查询请输入y");
c=getchar();
getchar();//接收键入y以后回车确定的字符
}while(c==y);
//我已经在VC上调试过,运行正常
万历表还可以做很多扩展,有兴趣可以加我交流QQ:805966355
用Java语言编写个日历程序
自己制作台历用什么软件好
这个很多软件都可以的。你可以用dreamwaver做,用javascript来实现。也可以用图形处理工具photoshop来做推荐publisher更方便,1分钟就可以做好一个软件。如果你懂得编程,就可以自己做。建议上网找一些教程,有很多是手把手教着做的