JAVA自学日记--万年历的小练习

来源:互联网 发布:劫持刘嘉玲的是谁知乎 编辑:程序博客网 时间:2024/04/30 00:31
public class calendarDemo {public static void main(String[] args) {Calendars(2015,12);}// 判断一个年份是闰年还是平年public static boolean isRun(int year) {if ((year%4==0&&year%100!=0) || year%400==0)return true;return false;}// 判断一个月份是大月还是小月,2月单独判断并返回这个月份的天数。public static int getMonthDays(int year, int month) {int days=31;switch (month) {case 4:case 6:case 9:case 11:days = 30;break;case 2:if (isRun(year))days = 29;elsedays = 28;break;}return days;}// 判断一个年份月份距离1900年的1月1日是多少天public static int getAllDays(int year, int month) {int allyeardays = 0;for (int x = 1900; x < year; x++) {if (isRun(x))allyeardays += 366;elseallyeardays += 365;}for (int y = 1; y < month; y++) {allyeardays += getMonthDays(year, y);}return allyeardays;}// 判断一个月份的第一天是周几?public static int getWeek(int year, int month) {int day = getAllDays(year, month)+1; //这里+1是求出本月的一日距离1900年1月1日的天数return day % 7;}// 输出日历;按照 星期日,星期一,星期二,星期三,星期四,星期五,星期六的格式public static void Calendars(int year, int month) {int week = getWeek(year, month);System.out.println("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六");for(int x= 0;x<week;x++){System.out.print("\t");}for (int x = 1; x <= getMonthDays(year, month); x++) {System.out.print(x + "\t");week++;if (week % 7 == 0)System.out.println();}}}

0 0
原创粉丝点击