/*
* 程序头部注释开始
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:打印日历
* 作 者:薛广晨
* 完成日期:2012 年11 月 01 日
* 版 本号:x1.0
* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述:封装一类对象,功能是随机产生一个2000年后的年份,并输出该年2月的日历页,需处理闰年的问题
* 程序输出:
* 程序头部的注释结束
*/
package xue;
import java.util.*;
public class Year {
public void myCalendar()
{
int year = (int)(Math.random()* 1000)+2000;
Calendar calendar = Calendar.getInstance();
//calendar.set(year, 2, 1);
int day = 28;
boolean isLeap = judge(year);
int week = calendar.get(calendar.DAY_OF_WEEK) - 1;
System.out.println(year + "年2月的日历页:");
System.out.println("日 一 二 三 四 五 六");
if(isLeap)
day = 29;
String a[] = new String[week + day];
for(int x = 0; x < week; x++)
{
a[x] = " ";
}
for(int i = week, n = 1; i < a.length; i++)
{
if(n <= 9)
a[i] = String.valueOf(n) + " ";
else
a[i] = String.valueOf(n);
n++;
}
for(int j = 0; j < a.length; j++)
{
if(j % 7 == 0)
{
System.out.println();
}
System.out.print(" " + a[j]);
}
}
public static boolean judge(int year)
{
boolean yearleap = (year % 400 == 0) || (year % 4 == 0) && (year % 100 != 0);//采用布尔数据计算判断是否能整除
return yearleap;
}
}
测试类:
package xue;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Year year = new Year();
year.myCalendar();
}
}
运行结果: