例题1
查找十天前的日期。
package date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
public class Date01 {
public static void main(String[] args) throws ParseException {
Scanner sca = new Scanner(System.in);
System.out.println("请输入一个日期:" );
String str = sca.nextLine();
SimpleDateFormat s = new SimpleDateFormat("yyy-MM-dd");
Date d = s.parse(str); //格式转换 将string转为date
Calendar c = Calendar.getInstance(); //Calendar 类是一个抽象类,为操作日历字段(例如获得几天后的日期)提供了一些方法.(c.add)
c.setTime(d);
c.add(Calendar.DAY_OF_MONTH, -10);
SimpleDateFormat time = new SimpleDateFormat("yyy-MM-dd");
System.out.println(time.format(c.getTime()));
//String time = s.format(c.getTime());
//System.out.println("十天前的时期为:"+time);
}
}
例二
时间差问题
package date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class Date02 {
public static void main(String[] args) throws ParseException {
Scanner sca = new Scanner(System.in);
System.out.println("请输入一个日期:");
String str = sca.nextLine();
SimpleDateFormat s = new SimpleDateFormat("yyy-MM-dd HH:mm:ss");
Date d = s.parse(str);
long start = d.getTime(); //开始时间
long end = System.currentTimeMillis(); //系统时间
long result = end-start;
long time = result/(1000*60);
if(time < 60) {
System.out.println(time+"分钟前");
}else if(time < 60*24) {
System.out.println(time/60+"小时前");
}else if(time < 60*24*30) {
System.out.println(time/(60*24)+"天前");
}else if(time > 60*24*30) {
System.out.println(s.format(d.getTime()));
}
}
}