/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:
* 作 者: 石丽君
* 完成日期:
* 版 本 号: V1.0
* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述: 封装一类对象,功能是随机产生一个2000年后的年份,并输出该年2月的日历页,需处理闰年的问题。
* 程序输出:
* 程序头部的注释结束
*/
Year类
package slj.com; import java.util.*; public class Year { int year; int feb; public Year(int y){ year=(int)(Math.random()*1000)+y; } public void getfeb(){ if(year%4==0&&year%100!=0||year%400!=0){ feb=29; }else feb=28; } public void get_calendar(){ System.out.println(" "+year+"年2月份的日历"); System.out.println(); System.out.println(" 日 一 二 三 四 五 六"); Calendar 日历=Calendar.getInstance(); 日历.set(year, 2,1); int 星期几=日历.get(Calendar.DAY_OF_WEEK)-1; int d=0; if(feb==29){ d=29; } else{ d=28; } String a[]=new String[星期几+d]; for(int i=0;i<星期几;i++){ a[i]="**"; } for(int i=星期几,n=1;i<星期几+d;i++) { if(n<=9) a[i]=String.valueOf(n)+" "; else a[i]=String.valueOf(n); n++; } for(int i=0;i<a.length;i++) { if(i%7==0){ System.out.println(" "); } System.out.print(" "+a[i]); } } }
TestYear类
package slj.com; public class TestYear { public static void main(String[] args) { // TODO Auto-generated method stub Year year=new Year(2000); year.getfeb(); year.get_calendar(); } }
运行结果:
2344年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 29