概述
java中的时间转换是常用到的,比如开始时间和结束时间之间做插值,计算天数
util
public static int timediffer(Date startTime,Date endTime){
long timediffer = startTime.getTime() - endTime.getTime();
return timediffer/(1000 * 60 * 60 * 24));
}
但是有个问题是什么呐?
如果startTime为空,或者endTime为空,或者startTime和endTime都为空,就会报异常,而这个util中没有做处理。
想到的是,可以判断一下,那么就有如下函数
public static dateNotNull(Date dateFirst,Date dateSecond){
if(dateFirst!=null&&dateSecond!=null){
return true
}
return false;
}
这个函数的意义是,当两个date值都不为空的时候,返回true,但是,也就意味着在判断
if(dateFirst==null||dateSecond==null){
}
是不适用的
那么可以这样考虑
public static dateNotNull(Date date){
if(date!=null){
return true
}
return false;
}
public static dateIsNull(Date date){
if(date==null){
return true
}
return false;
}
那么
public static int timediffer(Date startTime,Date endTime){
if(dateNotNull(startTime)&&dateNotNull(endTime)){
throw new Exception("请两个时间值都传入")
}
long timediffer = startTime.getTime() - endTime.getTime();
return timediffer/(1000 * 60 * 60 * 24));
}
而
if(dateFirst==null||dateSecond==null){
}
就可以
if(dateIsNull(dateFirst)||dateIsNull(dateSecond)){}
进行了函数的抽取和改造
该博客讨论了Java中日期时间转换的常见操作,如计算两个日期间的天数差。作者指出了在计算时间差时未处理空值可能导致的异常,并提出了改进的函数来检查日期是否为null。通过`dateNotNull`和`dateIsNull`函数,可以更优雅地处理空值情况,避免程序抛出异常。博客还涵盖了如何重构`timeDiffer`函数以确保输入的日期不为空。
417

被折叠的 条评论
为什么被折叠?



