正文

显示日历2009-09-24 19:04:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/shao/48080.html

分享到:

      import javax.swing.JOptionPane;public class PrintCalendar { public static void main(String[] args) {  String stringYear = JOptionPane.showInputDialog("Input the year(e.g. 2009):");  int year = Integer.parseInt(stringYear);  String stringMonth = JOptionPane.showInputDialog("Input the month:");  int month = Integer.parseInt(stringMonth);    printMonth(year,month); }  static void printMonth(int year,int month) {  printMonthTitle(year,month);  printMonthBody(year,month); }  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 "); }  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; }  static void printMonthBody(int year,int month){  int startDay = getStartDay(year,month);    for(int i=1;i<=startDay;i++)   System.out.print("  ");    int monthDays = getMonthDays(year,month);  for(int i=1; i<=monthDays; i++){   if(i<10)      System.out.print("   "+i);   else     System.out.print("  "+i);   if((i+startDay)%7 == 0)    System.out.println();  }  System.out.println(); }  static int getStartDay(int year,int month) {  int startDay1800 = 3;  int total = getTotalDays(year,month);  return (total+startDay1800) % 7; }  static int getTotalDays(int year,int month){  int totalDays = 0;  for(int i=1800;i<year;i++){   if(isLeap(year))    totalDays += 366;   else    totalDays += 365;  }    for(int i=1;i<month;i++)   totalDays += getMonthDays(year,month);  return totalDays; }  static boolean isLeap(int year) {  return year % 400 ==0||(year % 4 ==0 && year % 100 != 0); }  static int getMonthDays(int year,int month) {  if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)   return 31;  if(month==4||month==6||month==9||month==11)   return 30;  if(month==2)   return isLeap(year)? 29:28;    return 0; }}     输出有点问题啊,为什么啊??   不明白

阅读(1381) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册