posts - 1,comments - 0,trackbacks - 0
          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<startDay; 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<year; i++)
                      if(isLeapYear(i))
                          total += 366;
                      else
                          total += 365;
                  for(int i=1; i<month; i++){
                      total = total +getNumberOfDayInMonth(year, i);
                  }
                  return total;
              }
             
              public static boolean isLeapYear(int year){
                  return (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0));
              }
          }


          posted on 2010-04-25 11:10 ln_ydc 閱讀(115) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 无极县| 洛扎县| 格尔木市| 炉霍县| 哈尔滨市| 高尔夫| 交口县| 康平县| 平江县| 南昌县| 崇明县| 乌鲁木齐县| 亳州市| 渭源县| 万全县| 玛沁县| 荣成市| 教育| 武陟县| 长武县| 和龙市| 瓮安县| 西城区| 游戏| 盐山县| 靖州| 轮台县| 云林县| 阿克苏市| 阿克陶县| 尼木县| 邵东县| 密山市| 威信县| 渝北区| 沙河市| 屯昌县| 临泉县| 满城县| 汝城县| 秦皇岛市|