函数名 上班时间修正
arrivalTimeRevision (时间校正)
参数1 originalTime, 原始时间(上班打卡的时间)
参数2 timeUnit 校正的时间单位
return adjustedTime
函数功能: 根据原始时间和时间单位,将上班时间作类似进位处理
如原始时间 8:32 时间单位 15分钟 : 校正后时间 8:45
如原始时间 8:25 时间单位 15分钟 : 校正后时间 8:30请大家帮帮忙,十分感谢。
arrivalTimeRevision (时间校正)
参数1 originalTime, 原始时间(上班打卡的时间)
参数2 timeUnit 校正的时间单位
return adjustedTime
函数功能: 根据原始时间和时间单位,将上班时间作类似进位处理
如原始时间 8:32 时间单位 15分钟 : 校正后时间 8:45
如原始时间 8:25 时间单位 15分钟 : 校正后时间 8:30请大家帮帮忙,十分感谢。
int d = m % 15;
if(d == 0)
return originalTime;
else return originalTime在分上加(15 - d)。
public static Date arrivalTimeRevision(Date originalTime, int timeUnit) {
long time = originalTime.getTime();
int r = (timeUnit * 60 * 1000);
time = (long) Math.ceil(time / r) * r ;
Date adjustedTime = new Date(time);
return adjustedTime;
}test code:
System.out.println(arrivalTimeRevision(new Date(), 15));
public static Date arrivalTimeRevision(Date originalTime, int timeUnit) {
long time = originalTime.getTime();
int r = 60 * 1000;
time /= r;
time = (long) Math.ceil(time * 1.0 / timeUnit ) * timeUnit * r ;
Date adjustedTime = new Date(time);
return adjustedTime;
}
得到的是整数部分,然后加1
然后在乘回去,公式如下:
new Date(originalTime.getTime()/(1000*60*15)+1)*(1000*60*15);
我把我的思路那给大家看看。public static String leaveTimeRevision (String originalTime,String timeUnit){
String adjustedTime ="";
String[] key=originalTime.trim().split(":");
key[0]=String.valueOf(Integer.parseInt(key[0]));
key[1]=String.valueOf(Integer.parseInt(key[1]));
int original=Integer.parseInt(key[1]);
int unit= Integer.parseInt(timeUnit);
if(original%unit!=0){
int s=original/unit;
int ss=s*unit+unit;
// int ss=s*unit;
adjustedTime=key[0]+":"+ss;
SimpleDateFormat sDateFormat = new SimpleDateFormat("hh:mm");
try {
Date date=sDateFormat.parse(adjustedTime);
adjustedTime=sDateFormat.format(date);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else{
adjustedTime=originalTime;
}
return adjustedTime;
}