Calendar类
//注意,月份是以0开始的,即一月为0,并且,1不能放在get函数里面
getActualMaximum//获得的是当年的而不是全部日期的
System.out.println( Calendar.SUNDAY );//一周中周日开始,
?*System.out.println((c.get(Calendar.MONTH)+1)+ " "+ Calendar.MONTH+" "+c.MONTH);//Calendar.MONTH==c.MONTH
c.MONTH的MONTH是静态的、Calendar类里的MONTH,而c.set(Calendar.MONTH, 1);改的是c成员变量的MONTH
可以理解成改的是c对象中的表示MONTH的那个变量,该变量名不一定用month*/
c.set(c.YEAR, 3000);c.set(Calendar.YEAR, 3000);
YEAR是Calendar类中的静态常量,用“类名.”可以调,用“对象.”的形式也可以调,但用“类名.”更合理,因为这是类模板中的,用对象去调容易产生歧义,而且通过对象再去找类模板中的方法区数据,拐弯了
package cn.hncu.Data;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
public class CalendarDemo {
public static void main(String[] args) {
Calendar c=Calendar.getInstance();
Date d=c.getTime();
// SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm");
// System.out.println(c.get(Calendar.MONTH)+1);//注意,月份是从0月开始,并且,1不能放在get函数里面
// System.out.println(sdf.format(d));
// c.set(c.YEAR, 12);
// System.out.println(c.get(c.YEAR));
//
v1();
}
private static void v1() {
// Calendar c=Calendar.getInstance();
// c.set(Calendar.DAY_OF_MONTH,1);
// int dayOfWeek=c.get(Calendar.DAY_OF_WEEK)-1;
System.out.println( Calendar.SUNDAY );//周日开始
c.set(Calendar.MONTH, 1);
c.set(Calendar.YEAR, 2012);
// Calendar calendar=Calendar.getInstance();
// System.out.println((c.get(Calendar.MONTH)+1)+ " "+ Calendar.MONTH+" "+c.MONTH);//Calendar.MONTH==c.MONTH
// int day=c.getActualMaximum(Calendar.DAY_OF_MONTH);//获得的是当年的而不是全部日期的
// c.set(Calendar.DAY_OF_MONTH, 1);
// System.out.println(day);
Calendar();
}
private static void Calendar() {
Scanner sc=new Scanner(System.in);
System.out.println("请输入日期:yyyy-mm");
String str=sc.next();
String[] s=str.split("-");
Calendar c=Calendar.getInstance();
int year=0;
int month=0;
try {
year= Integer.parseInt(s[0]);
month = Integer.parseInt(s[1])-1;
} catch (Exception e) {
System.out.println("输出格式错误!");
}
c.set(year,month,1);
// System.out.println(c.get(Calendar.DAY_OF_WEEK));
int dayOfMonth=c.getActualMaximum(Calendar.DAY_OF_MONTH);
int dayOfWeek=c.get(Calendar.DAY_OF_WEEK)-1;
// System.out.println(dayOfWeek);
int i=1;
int count=0;
for(i=0;i<dayOfWeek;i++){
System.out.printf(" ");
count++;
}
for(i=1;i<=dayOfMonth;i++){
if((count)%7==0){
System.out.println();
}
System.out.printf("%2d ",i);
count++;
}
}
}