JAVA万年历制作.docx
《JAVA万年历制作.docx》由会员分享,可在线阅读,更多相关《JAVA万年历制作.docx(10页珍藏版)》请在冰豆网上搜索。
JAVA万年历制作
XXXX学院软件工程专业
JAVA程序设计
设计名称:
java软件开发课程设计
设计题目:
《万年历》
学生学号:
专业班级:
学生姓名:
学生成绩:
指导教师(职称):
课题工作时间:
2017.03.07至2016.03.10
设计要求:
改机日历程序,要求是,从命令行输入整数年,程序自动输出1-12月历。
格式要求,做成word文件,写出重点步骤的说明,附上运行截图,附上源码;
文件名:
年级专业班级学号_姓名.doc
源代码
classCalenderTest1{
publicstaticvoidmain(String[]args){
/*
使用命令行参数,运行程序时输入数据
*/
Stringstr1=args[0];
/*
只要能把命令行输入的字符串,转化成int数据
"2017"->2017
*/
intyear=Integer.parseInt(str1);
//System.out.println("year="+year);
//System.out.println("month="+month);
inttotalDays=0;//计算总天数
//先计算从当年到1年的总天数
for(inti=1;i//要判断闰年
if(i%4==0&&i%100!
=0||i%400==0){
totalDays=totalDays+366;
}
else{
totalDays=totalDays+365;
}
}
/*再加当月的1号
if(month==1){
totalDays=totalDays+1;
}
else{
//当月1号是星期几
intweekDay=totalDays%7;
}*///System.out.println("weekDay="+weekDay);
//存储当前月的天数
intdays=totalDays;
intweekDay=0;
intmDays=0;
for(intmonth=1;month<13;month++){
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12){
mDays=31;
}
else{
if(month==4||month==6||month==9||month==11){
mDays=30;
}
else{
if(year%4==0&&year%100!
=0||year%400==0){
mDays=29;
}
else{
mDays=28;
}
}
}
totalDays=days;
//加上当年1号到当月之间的天数
for(inti=1;i//根据不同的月,查找相应的天数,进行加运算
switch(i){
case1:
case3:
case5:
case7:
case8:
case10:
case12:
totalDays=totalDays+31;
break;
case4:
case6:
case9:
case11:
totalDays=totalDays+30;
break;
case2:
if(year%4==0&&year%100!
=0||year%400==0){
totalDays=totalDays+29;
}
else{
totalDays=totalDays+28;
}
break;
}
}
//再加当月的1号
totalDays=totalDays+1;
weekDay=totalDays%7;
Stringtitle[]={"天","一","二","三","四","五","六"};
Stringspace="";//月历中的分隔空格
//数组的黄金搭档就是for循环
//JAVA的数组对象,有个属性length直接可以得到长度
System.out.println();
System.out.print(""+month+"月");
System.out.println();
for(inti=0;i
System.out.print(space+title[i]);
}
//换行,把插入点放在下一行
System.out.println();
/*
这里要有输出内容时的控制单元
着这里,一个输出单元就是"空隙"+标题字符的宽度
要让1号输出到正确位置,就需要事先用空格将其
挤到该出现的位置,是星期几,就向后挤几个单元
*/
for(inti=0;i//中文的标题字符,一个宽度是两个空格字符
System.out.print(space+"");
}
/*
从1号到mDays循环输出月历,要注意换行条件
注意每个日期的输出单元
*/
for(intd=1;d<=mDays;d++){
//如果输出的日期小于10则左侧补空格
/*
当前的月历格式,指星期天是起始
换行(开始下一周)条件就是
(d+weekDay-1)%7==0,就输出换行符
*/
if((d+weekDay-1)%7==0){
System.out.println();
}
if(d<10){
System.out.print(space+""+d);
}
else{
System.out.print(space+d);
}
}System.out.println();
}
}
}
在原有代码的基础上,对月份进行循环,并且将月份的循环放在,寻找月份天数的循环之前。
将此代码
改成了
运行结果2016年对比正确