-
计算天新增时间思路:
拿出当天的时间进行格式化,拿到零点,例如2019/3/12 22:21 变成 2019/3/12 00:00 就是这天的开始时间。
拿到这天的时间后用Calendar 日历在天的基础上加一就是今天的结束时间 2019/3/13 00:00,只要在这两个
时间段之间的就是今天新增的。代码:
/**
*计算某天的起始时刻(毫秒数)
*/
@Test
public void testStartTime() throws ParseException {
Date d = new Date();
long ms = getZeroDate(d).getTime();
System.out.println(ms);
}
/**
* 得到指定date的零时刻.
*/
private Date getZeroDate(Date d){
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd 00:00:00");
return sdf.parse(sdf.format(d));
} catch (Exception e) {
e.printStackTrace();
}
return null ;
}
/**
*计算某天的结束时刻(毫秒数)
*/
@Test
public void testEndTime() throws ParseException {
Date d = new Date();
Date zeroDate = getZeroDate(d) ;
//日历
Calendar c = Calendar.getInstance();
c.setTime(zeroDate);
c.add(Calendar.DAY_OF_MONTH,1); //在的天的基础上加1
Date endDate = c.getTime();
System.out.println(endDate.getTime()) ;
}
-
计算周新增时间思路:
注意周结束时间日历进行加减的规律是 ,假如今天是这周的第三天,那你用日历Calendar.DAY_OF_MONTH,-(n - 1)
(- 代表向前几天 , + 代表向后几天),向前翻3-1天就是这周的起始天数,星期日。要是这周结束时间就是(8-n)n是3
用的是getZeroDate() 这个方法都要调用这个。
代码:
/**
* 测试周起始时间
*/
@Test
public void testWeekStartTime(){
Date d = new Date();
Date zeorDate = getZeroDate(d);
Calendar c = Calendar.getInstance();
c.setTime(zeorDate);
//周日是一周的第一天
int n = c.get(Calendar.DAY_OF_WEEK); //拿到是这周的第几天
//add 就是进行数字处理
c.add(Calendar.DAY_OF_MONTH,-(n - 1)); // - 代表向前几天 , + 代表向后几天
// 拿到毫秒值的方式
// Date time = c.getTime();
// long l = time.getTime();
long ms = c.getTimeInMillis();
System.out.println(ms );
}
/**
* 测试周结束时间
*/
@Test
public void testWeekEndTime(){
Date d = new Date();
Calendar c = Calendar.getInstance();
c.setTime(d);
int n = c.get(Calendar.DAY_OF_WEEK);
c.add(Calendar.DAY_OF_MONTH,(8 - n));
//
Date weekFirstDate = c.getTime();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss") ;
System.out.println(sdf.format(weekFirstDate));
}