练习一:题目:在控制台打印10天前的日期
package com.qf.demo03;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class Test01 {
public static void main(String[] args) throws ParseException {
Date date= new Date();
String str ="2022-2-1";
//实例化时间类
SimpleDateFormat sl = new SimpleDateFormat("yyyy-MM-dd");
//把string类型的字符串通过SimpleDateFormat转换成Data的类的数据
Date parse = sl.parse(str);
//使用这个类
Calendar cal =Calendar.getInstance();
//把自己设置的时间进行转换到SimpleDateFormat里面去
cal.setTime(parse);
//获取当前日期的10天前的日期,即便是日期在在个位数时候,也是可以的
cal.add(Calendar.DAY_OF_MONTH,-10);
System.out.print(cal.get(Calendar.YEAR)+"年");
//注意;月份是从0开始的需要加1
System.out.print((cal.get(Calendar.MONTH)+1)+"月");
System.out.println(cal.get(Calendar.DAY_OF_MONTH)+"日");
}
}
练习二:键盘录入2020年1月1日,获取年、月、日、时、分、秒,星期几以及这天是这一年的第几天和这周是这一年的第几周
package com.qf.demo03;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
public class Test02 {
public static void main(String[] args) throws ParseException {
Scanner input = new Scanner(System.in);
System.out.println("输入一个格式:yyyy-MM-dd 的时间:");
String str =input.next();
//将字符串转换成Data类型数据,需要使用SimpleDateFormat的parse方法
SimpleDateFormat sl = new SimpleDateFormat("yyyy-MM-dd");
Date parse = sl.parse(str);
//获取里面的年月日等等 通过Calendar类进行
Calendar cal = Calendar.getInstance();
System.out.println("年份:"+cal.get(Calendar.YEAR));
//注意:月份是从0开始的,需要+1
System.out.println("月份:"+cal.get(Calendar.MONTH)+1);
System.out.println("日:"+cal.get(Calendar.DAY_OF_MONTH));
//星期几,星期几需要进行-1,
System.out.println("星期"+(cal.get(Calendar.DAY_OF_WEEK)-1));
}
}
练习三:
计算今天距离2020年1月1日有多少天;
package com.qf.demo03;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
public class Test03 {
public static void main(String[] args) throws ParseException {
//计算今天距离2020年1月1日有多少天
//输入一个 yyyy-MM-dd类型的字符串
Scanner input =new Scanner(System.in);
System.out.println("输入字符串:");
String str = input.next();
//需要将输入的字符串转换成毫秒值
Date date01 = new Date();
SimpleDateFormat sl=new SimpleDateFormat("yyyy-MM-dd");
Calendar cal =Calendar.getInstance();
Date parse = sl.parse(str);
long time = parse.getTime();
//获取当前时间的毫秒值
long l = System.currentTimeMillis();
//计算天数
System.out.println((l - time) / 1000 / 60 / 60 / 24);
}
}
练习四:
验证打印1-9999所需要使用的时间是多少(毫秒值)
package com.qf.demo03;
public class Test04 {
public static void main(String[] args) {
//验证for循环打印数字1-9999所需要使用的时间(毫秒值)
/*
1.定义一个开始的时间
2.循环打印
3.定义一个结束的时间,两个时间相减
*/
long startTime = System.currentTimeMillis();
for (int i = 0; i < 10000; i++) {
System.out.print(i+" ");
}
System.out.println();
long endTime = System.currentTimeMillis();
System.out.println("所以时间:"+(endTime - startTime)+"毫秒值");
}
}