package day16;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class S2朋友圈发布日期计算 {
/**
* 获取当前时间
* 与传入时间做相减计算
* 算时间差,
* 如果小于3分钟,显示刚刚
* 小于1小时,显示 n分钟前发布
* 大于1天,就显示 n小时前发布
* 昨天发布,就显示 昨天发布
* 前天发布,就显示 前天发布
* 3天前,就显示3天前发布
* 不满足上面条件,就显示 月-日 时:分
* @throws ParseException
*/
public static String getDateTimeInterval(String datetime) throws ParseException{
String ret = "";
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date2 = sdf.parse(datetime);
// 此处学习阶段,精度不要那么高,所以直接取整数,但是会有误差
long interval = (date.getTime() - date2.getTime())/1000;
if( interval/60 < 3 ){ // 除以60,换算成分钟,如果小于3分钟,就显示刚刚
ret = "刚刚发布";
}else if(interval/60 < 59){ // 低于1小时,就显示 n分钟前
ret = (interval/60)+ "分前发布";
}else if(interval/60/60 < 24){ // 低于1天,就显示 n小时前
ret = (interval/60/60)+ "小时前发布";
}else if(interval/60/60/24 ==1){ // 昨天发布
ret = "昨天发布";
}else if(interval/60/60/24 ==2){ // 前天发布
ret = "前天发布";
}else if(interval/60/60/24 ==3){ // 3天前发布
ret = "3天前发布";
}else{// 显示月-日 时:分
SimpleDateFormat sdf2 = new SimpleDateFormat("MM-dd HH:mm");
ret = sdf2.format(date2);
}
return ret;
}
public static void main(String[] args) throws ParseException {
String res = getDateTimeInterval("2022-06-25 19:36:00");
System.out.println(res);
}
}