该程序所用集成环境为MyEclipse
本万年历之功能:
1.实现对用户所输入的年份、月份的正确性进行判断
2.判断用户输入年份是否为闰年
3.计算用户输入年份的天数
4.计算用户输入月份的天数
5.将本月的天数按照Window系统日期和时间属性打印出来
注:代码内已添加注释
import java.util.Scanner;
public class WNL {
public static void WNLMethod() {
Scanner input = new Scanner(System.in);
int i;
int year; // 接收用户输入的年份
int month; // 接收用户输入的月份
boolean xn; // 声明一个布尔变量,以标记用户输入的年月份的正确性
// 利用do-while循环判断用户所输入年月份的正确性,xn标记
do {
System.out.print("请输入年份:");
year = input.nextInt();
System.out.println();
System.out.print("请输入月份:");
month = input.nextInt();
System.out.println();
xn = (year < 1) || (month > 12) || (month < 1);
if (xn)
System.out.println("对不起,您输入有误!请重新输入!");
} while (xn);
int everyYearDay = 0; // 接收每年的天数
int totalYearsDays = 0; // 接收年份总天数
int inputYearDay = 0; // 接收用户输入年份的天数
boolean yn = false; // 标记每年是否为闰年
for (i = 1900; i <= year; i++) {
// 判断是否为闰年
if (((i % 4 == 0) && (i % 100 != 0)) || (i % 400 == 0)) {
yn = true;
everyYearDay = 366;
} else {
yn = false;
everyYearDay = 365;
}
// 计算1900年至(year - 1)年底的总天数
if (i < year) {
totalYearsDays = totalYearsDays + everyYearDay;
}
// 格式化输出
else {
inputYearDay = everyYearDay;
if (yn) {
System.out.println(year + "年/t是闰年/t共" + inputYearDay + "天");
} else {
System.out.println(year + "年/t是平年/t共" + inputYearDay + "天");
}
System.out.println();
}
}
int everyMonthDay = 0; // 接收每月的天数
int totalMonthsDays = 0; // 接收月份总天数
// 循环月份判断每月天数
for (i = 1; i <= month; i++) {
// 对月份进行判断
switch (i) {
case 4:
case 6:
case 9:
case 11:
everyMonthDay = 30;
break;
case 2:
if (yn) {
everyMonthDay = 29;
} else {
everyMonthDay = 28;
}
break;
default:
everyMonthDay = 31;
break;
}
// 计算year年的1月 - (month - 1)的天数
if (i < month) {
totalMonthsDays = totalMonthsDays + everyMonthDay;
} else {
System.out.println(month + "月/t共有" + everyMonthDay + "天");
System.out.println();
}
}
int total = totalYearsDays + totalMonthsDays; // 1900年1月1日至year年的(month
// - 1)月份的天数
int temp = (total + 1) % 7; // 计算总天数加上month月的第一天,然后取余数
// 格式化输出
System.out.println("星期日/t星期一/t星期二/t星期三/t星期四/t星期五/t星期六");
// 打印空格
for (i = 0; i < temp; i++) {
System.out.print("/t");
}
// 输出month中的每一天
for (i = 1; i <= everyMonthDay; i++) {
// 判断:若总天数加上month中的i号,若模7==6的话,则该换行输出了
if ((total + i) % 7 == 6) {
System.out.println(i);
} else {
System.out.print(i + "/t");
}
}
System.out.println("/n/n");
}
}
import java.util.Scanner;
public class StartWNL {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String answer;
System.out
.println("------------------------------欢迎使用万年历------------------------------");
System.out
.println(" By Hamber_Bao/n/n");
do {
WNL.WNLMethod();
System.out.println("是否继续查询?(Y/N)");
answer = input.next();
} while (answer.equalsIgnoreCase("Y"));
System.out.println("程序结束!谢谢您的使用!");
}
}
2010-05-22
By Hamber_Bao