今天接触了Java的Date类,相信像我一样初学Java的人肯定对Java的常用类充满好奇,它们都有哪些方法,那些属性,好奇心驱使查阅了API文档,心血来潮,花了一晚上写了一个万年历,个人觉得虽然程序实现很简单但是还算实用,嘿嘿。先看看效果。。。
测试这个月(2015年09月)的效果
然后再看看2015(平)年2月份的效果 还有2016(闰)年2月份的效果
现在将我做的代码分享给大家(不足之处在所难免,我是初学,大家为我指出不足之处,我好完善,另外也可把代码直接拷走放在Eclipse上运行),已经多次测试准确无误!。
import java.util.Calendar;
import java.util.Scanner;
public class TestDate {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.print("请输入年份:");
int year=input.nextInt();
System.out.print("请输入月份:");
int month=input.nextInt();
Calendar rightNow = Calendar.getInstance();
rightNow.set(year, month - 1,1);
int week = rightNow.get(Calendar.DAY_OF_WEEK) - 1;//获取当月第一日是星期几,存入week中
//System.out.print(rightNow.getTime());
int[] cal = new int[42];//开一个长度为42数组,存放日历
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12){
for(int i=1;i<=31;i++){
cal[week]=i;//从星期几开始存入1号
week++;
}
}
if(month==4||month==6||month==9||month==11){
for(int i=1;i<=30;i++){
cal[week]=i;//从星期几开始存入1号
week++;
}
}
//判断平年闰年
if(year%400==0||(year%4==0 && year%100!=0)){//闰年
if(month==2){//闰年2月份
for(int i=1;i<=29;i++){
cal[week]=i;//从星期几开始存入1号
week++;
}
}
}else{// 平年
if (month==2){//平年二月份
for(int i=1;i<=28;i++){
cal[week]=i;//从星期几开始存入1号
week++;
}
}
}
System.out.println("日 一 二 三 四 五 六 ");
//输出日历
int count = 0;
for(int i=0;i<42;i++){
if(cal[i]!=0){
System.out.print(cal[i]);
}
System.out.print("\t");
count++;
if(count%7==0){
System.out.println();
}
}
}
}