给定时间a,Date型 , 再给定时间b,Map 型,
需要求距离时间a最近的一个b,返回值要求是Date型。
例如:
时间a为2015-4-13 00:05,
时间b为23:59,则存为<"hour",23>,<"min",59>
需要求距离2015-4-13 00:05最近的一个23:59,则是2015-4-12 23:59。
求java代码实现
1、根据A,获取日期。然后再获取A的前一天A_pre和后一天A_after
2、根据B,得到3个日期时间,A_pre+B,A_after+B,A+B三个日期
3、三个日期与A进行日期相减,都转换成秒,看哪个最小就是哪个时间
又是一个让做作业的。。。
最直接的算法就是uzihao简单的,虽然代码多一点,但是逻辑清楚,运算的是计算机,它可以帮你胜任繁琐的事情,人要干的就是如何指挥它
int h = a的hour-b的hour
int m = a的minute -b的minute
if( h < -12)
day=day
else if( h==-12 )
if( m < 0 )
day--
else
day=day
else if(h>-12 && h<12)
day=day
else if(h ==12)
if( m < 0 )
day=day
else
day++
else
day++