package homework05; /* * 题目:编写一个应用程序,输出某年某月的日历页,通过main()方法的参数将年和月份时间传递到程序中。 */ import java.util.Calendar; class CalendarDisplay{ private int year; private int month; public CalendarDisplay(int year,int month){ this.year=year; this.month=month-1; } //返回当前月份的总天数。 public int getNumberOfDaysInMonth(int year,int month){ int num=0; if(month == 1|| month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) num = 31; else if(month == 4 || month == 6 || month == 9|| month == 11) num = 30; else if(month == 2){ if(year%4==0&&year%100!=0||year%400==0) num = 29; else num = 28; } return num; } public void display(){ Calendar cal=Calendar.getInstance(); cal.set(year, month, 1); int weekOf=cal.get(Calendar.DAY_OF_WEEK)-1; month++; String a[]=new String[weekOf+getNumberOfDaysInMonth(year,month)]; for(int i=0;i<weekOf;i++){ a[i]=""; } for(int i=weekOf,n=1;i<weekOf+getNumberOfDaysInMonth(year,month);i++){ a[i]=String.valueOf(n); n++; } System.out.println(" 这是"+year+"年"+month+"月的日历页!"); System.out.printf("%10c%10c%10c%10c%9c%8c%10c\n",'日','一','二','三','四','五','六'); for(int i=0;i<a.length;i++){ if(i%7==0&&i!=0) System.out.println("\n"); System.out.printf("%5s",a[i]); } } } public class ch07_1 { public static void main(String[] args) { new CalendarDisplay(Integer.parseInt(args[0]),Integer.parseInt(args[1])).display(); } }
右击该类,选择【run_configurations】--选择【arguments】输入两个参数值,空格分开。例如:2010 2
单击【run】
输出结果如下:
这是2010年2月的日历页!
日 一 二 三 四 五 六
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28
package homework05; /* *题目: 编写一个应用程序,计算某年某月某日和某年某月某日之间的天数间隔。要求年、月、日 * 通过main()方法的参数传递到程序中。 */ import java.util.Calendar; public class ch07_2 { public static void main(String[] args) { Calendar cal=Calendar.getInstance(); cal.set(Integer.parseInt(args[0]), Integer.parseInt(args[1]),Integer.parseInt(args[2])); long timeOne=cal.getTimeInMillis(); cal.set(Integer.parseInt(args[3]), Integer.parseInt(args[4]),Integer.parseInt(args[5])); long timeTwo=cal.getTimeInMillis(); System.out.println(Integer.parseInt(args[0])+"年"+Integer.parseInt(args[1])+"月"+Integer.parseInt(args[2])+"日" +"至"+Integer.parseInt(args[3])+"年"+Integer.parseInt(args[4])+"月"+Integer.parseInt(args[5])+"日" + "相隔"+(timeTwo-timeOne)/(1000*60*60*24)+"天!"); } }
测试步骤如上。例如 2010 3 1 2010 3 26
结果:
2010年3月1日至2010年3月26日相隔25天!