- 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;
- else
- days = 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;
- else
- allyeardays += 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();
- }
- }
- }
复制代码 |
|