万年历JAVA源码

 

该程序所用集成环境为MyEclipse

 

本万年历之功能:

 

1.实现对用户所输入的年份、月份的正确性进行判断

2.判断用户输入年份是否为闰年

3.计算用户输入年份的天数

4.计算用户输入月份的天数

5.将本月的天数按照Window系统日期和时间属性打印出来

 

 

 注:代码内已添加注释                                        package Hamber_Bao; 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"); } }

 

                                         package Hamber_Bao; 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

 

你可能感兴趣的:(java,MyEclipse,String,Class,input,2010)