java时间转换之天数计算

该博客讨论了Java中日期时间转换的常见操作,如计算两个日期间的天数差。作者指出了在计算时间差时未处理空值可能导致的异常,并提出了改进的函数来检查日期是否为null。通过`dateNotNull`和`dateIsNull`函数,可以更优雅地处理空值情况,避免程序抛出异常。博客还涵盖了如何重构`timeDiffer`函数以确保输入的日期不为空。

概述

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)){}

进行了函数的抽取和改造

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值