Chinaunix首页 | 论坛 | 博客
  • 博客访问: 157546
  • 博文数量: 29
  • 博客积分: 2115
  • 博客等级: 大尉
  • 技术积分: 211
  • 用 户 组: 普通用户
  • 注册时间: 2010-02-13 17:27
个人简介

ddd

文章分类

全部博文(29)

文章存档

2010年(29)

我的朋友

分类: Java

2010-04-25 11:21:00

import javax.swing.JOptionPane;

public class PrintCalendar {

    public static void main(String [] args){
        String yearString = JOptionPane.showInputDialog(
                "Enter full year (e.g.,2001):");
        int year = Integer.parseInt(yearString);
        
        String monthString = JOptionPane.showInputDialog(
                "Enter mouth as number between 1 and 12 ;");
        int month = Integer.parseInt(monthString);
       
        printMonth(year,month);
    }
   
    public static void printMonth(int year, int month){
        printMonthTitle(year, month);
        printMonthBody(year, month);
    }
   
    public static void printMonthTitle(int year, int month){
        System.out.println("        "+getMonthName(month)
                +"   "+year);
        System.out.println("--------------------------------");
        System.out.println("  Sun Mon Tue Wed Thu Fri Sat");
    }
   
    public static void printMonthBody(int year, int month){
        int startDay = getStartDay(year,month);
        int numberOfDayInMonth = getNumberOfDayInMonth(year, month);
        int i = 0;
        for(i=0; i            System.out.print("    ");
        for(i=1; i<=numberOfDayInMonth; i++){
            if(i<10)
                System.out.print("   "+i);
            else
                System.out.print("  "+i);
            if((i+startDay)%7==0)
                System.out.println();
        }
    }
   
    public static String getMonthName(int month){
        String monthName = null;
        switch(month){
        case 1: monthName = "January";break;
        case 2: monthName = "February";break;
        case 3: monthName = "March";break;
        case 4: monthName = "April";break;
        case 5: monthName = "May";break;
        case 6: monthName = "June";break;
        case 7: monthName = "July";break;
        case 8: monthName = "August";break;
        case 9: monthName = "September";break;
        case 10: monthName = "October";break;
        case 11: monthName = "November";break;
        case 12: monthName = "December";break;
        }
        return monthName;
    }
   
    public static int getStartDay(int year, int month){
        int startDay1800 = 3;
        int totalNumberOfDays = getTotalNumberOfDays(year, month);
        return (totalNumberOfDays + startDay1800)%7;
    }
   
    public static int getNumberOfDayInMonth(int year, int month){
        int returnmonth = 0;
        switch(month){
        case 1:
        case 3:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12: returnmonth = 31;break;
        case 4:
        case 6:
        case 9:
        case 11: returnmonth = 31; break;
        case 2: returnmonth = isLeapYear(year) ? 29:28; break;
        }
        return returnmonth;
    }
   
    public static int getTotalNumberOfDays(int year, int month){
        int total = 0;
        for(int i = 1800; i            if(isLeapYear(i))
                total += 366;
            else
                total += 365;
        for(int i=1; i            total = total +getNumberOfDayInMonth(year, i);
        }
        return total;
    }
   
    public static boolean isLeapYear(int year){
        return (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0));
    }
}
 
阅读(1195) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~