Calendar日历类,Date类

时间:2021-06-03 18:09:56

Date表示日期:1970年1月1日0点0分0秒0毫秒到现在的毫秒数,他的组成部分:yyyy,MM,dd,hh|HH,mm,ss

Calendar:日历,通常用于日期计算

获取当前时间并格式化输出

@Test
public void test(){
Date now = new Date();//表示系统的当前日期
//格式化输出
SimpleDateFormat sdf = new SimpleDateFormat("HH点mm分ss秒");
System.out.println(sdf.format(now));
}

获取当前时间毫秒数

@Test
public void test2(){
long a = System.currentTimeMillis();//当前时间的毫秒
System.out.println(a);
long b = System.currentTimeMillis();
System.out.println(b-a);
}

接受用户输入日期,并解析成date

public void test3() throws ParseException{
//接受用户输入日期
Scanner input = new Scanner(System.in);
System.out.println("请输入你的生日:yyyy-MM-dd");
String s = input.nextLine();
//将用户输入的生日解析成Date类型
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date birth = sdf.parse(s);
}

Calendar

	@Test
public void test4(){
Calendar cal = Calendar.getInstance();//获取实例
// print(cal);
// cal.set(Calendar.DAY_OF_MONTH, 1);//把日历设置成本月的第一天
// print(cal);
// cal.set(Calendar.MONTH, 0);//把日历设置成这一年第一个月
// print(cal);
// System.out.println(cal.get(Calendar.YEAR));
//两个相约十年后此时此刻相见
// cal.add(Calendar.YEAR, 10);
// print(cal);
// cal.add(Calendar.MONTH, 27);
cal.add(Calendar.DAY_OF_MONTH, -10);
print(cal);
System.out.println(cal.get(Calendar.DAY_OF_WEEK)==Calendar.TUESDAY);
System.out.println(cal.get(Calendar.MONTH));
cal.add(Calendar.DAY_OF_MONTH, 28);
System.out.println(cal.get(Calendar.MONTH));
}

private void print(Calendar cal) {
String s = String.format("%1$tY年%1$tm月%1$td日 %tH点", cal);
System.out.println(s);
}

万年历

public static void main(String[] args) {
System.out.println("按yyyy-MM-dd格式输入日期");
Scanner sc = new Scanner(System.in);
String sdate = sc.nextLine();
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");
Date date = null;
try {
date = sdf.parse(sdate);
} catch (ParseException e) {
e.printStackTrace();
}
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
//System.out.println(String.format("%1$tY年%1$tm月%1$td日 %tH点", calendar));
//calendar.setFirstDayOfWeek(2);//周一设为一周第一天
calendar.set(Calendar.DAY_OF_MONTH, 1);//日历设为本月第一天
int DayOfMonth = calendar.getActualMaximum(Calendar.DATE);//判断这个月多少天
System.out.println("日\t一\t二\t三\t四\t五\t六");
for(int i= 0;i<calendar.get(Calendar.DAY_OF_WEEK)-1;i++){
System.out.print("\t");
}//月初第一天前位置加空格
for (int i = 0; i < DayOfMonth; i++) {
if(calendar.get(Calendar.DAY_OF_WEEK)==Calendar.SUNDAY)
System.out.println();//换行
System.out.print(calendar.get(Calendar.DAY_OF_MONTH )+"\t");
calendar.add(Calendar.DAY_OF_MONTH , 1);
}
}