万年历
1.根据年月确定月份的天数
public class Wangnl {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input=new Scanner(System.in);
System.out.println("请输入年份");
int year=input.nextInt();
System.out.println("请输入月份");
int month=input.nextInt();
Calendar a = Calendar.getInstance();//实例化一个Calendar对象。
a.set(Calendar.YEAR, year);//设定年为指定的输入年份。
a.set(Calendar.MONTH, month - 1);//设定月为指定的输入月份,0-11代表1-12月。
a.set(Calendar.DATE, 1);//一个月中第一天的值为 1,指定为每月第一天。
int firstday= a.get(Calendar.DAY_OF_WEEK);//获得指定年月第一天的星期几。
a.roll(Calendar.DATE, -1);/*roll只作用于对应的时间属性,此处只作用于DATE,MONTH的值不变。*/
int lastday = a.get(Calendar.DATE); //通过设置set和roll方法,得到指定年月的最后一天。
System.out.println(month+"月有"+lastday+"天");
String[] day={"日","一","二","三","四","五","六"};
for(String date : day){
System.out.print(date+"\t");
}
System.out.println();
int[] date=new int[lastday];
int b=0;
for(int i=0;i<lastday;i++){
date[i]=++b;
}
for(int i=1;i<firstday;i++){
System.out.print("\t");
}
int count=firstday-1;
for(int i : date){
System.out.print(i+"\t");
count++;
if(count%7==0){
System.out.println();
}
}
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input=new Scanner(System.in);
System.out.println("请输入年份");
int year=input.nextInt();
System.out.println("请输入月份");
int month=input.nextInt();
Calendar a = Calendar.getInstance();//实例化一个Calendar对象。
a.set(Calendar.YEAR, year);//设定年为指定的输入年份。
a.set(Calendar.MONTH, month - 1);//设定月为指定的输入月份,0-11代表1-12月。
a.set(Calendar.DATE, 1);//一个月中第一天的值为 1,指定为每月第一天。
int firstday= a.get(Calendar.DAY_OF_WEEK);//获得指定年月第一天的星期几。
a.roll(Calendar.DATE, -1);/*roll只作用于对应的时间属性,此处只作用于DATE,MONTH的值不变。*/
int lastday = a.get(Calendar.DATE); //通过设置set和roll方法,得到指定年月的最后一天。
System.out.println(month+"月有"+lastday+"天");
String[] day={"日","一","二","三","四","五","六"};
for(String date : day){
System.out.print(date+"\t");
}
System.out.println();
int[] date=new int[lastday];
int b=0;
for(int i=0;i<lastday;i++){
date[i]=++b;
}
for(int i=1;i<firstday;i++){
System.out.print("\t");
}
int count=firstday-1;
for(int i : date){
System.out.print(i+"\t");
count++;
if(count%7==0){
System.out.println();
}
}
}
}
运行程序:
a.roll(Calendar.DATE, -1);//在本例中,设置为2015年10月最后-天。-1代表(日-1)
2015-10-1调用后2015-10-31;
a.add(Calendar.DATE, -1);//如果改为add方法,则为2015年9月最后一天。
//add方法同时影响月份。
2015-10-1调用后2015-9-30