题意描述:程序实现获取当前时间的下一天的时间
解题思路:最暴力的解法就是首先获得当前时间的年月日时分秒信息,然后依次再day+1得到后面一天的时间;如果day+1是月底,则month+1;如果month+1是年底,则year+1;然后还要判断每个月的天数、是否是闰年等问题,会发现一个简单的问题会变得异常复杂
于是就想到Java中的Date类来处理日期格式,通过它获得日期信息,而Date类的底层实现是通过一个long型的整形数据来保存的日期,这个值记录的是任何一个时间距1970年1月1日0时0分0秒的毫秒数,所以便有以下解法:
【注意:java.util.Date没有时区的概念,因此如果需要使用时区的时候应该使用java.util.Calendar类】
import java.util.Date;
public class GetNextDate {
private static Date getNextDate(Date date) {
long addTime = 1;//以1为基数
addTime *= 1; //1天
addTime *= 24; //一天24小时
addTime *= 60; //1小时60分钟
addTime *= 60; //1分钟60秒
addTime *= 1000; //1秒1000毫秒
Date resDate = new Date(date.getTime() + addTime);
return resDate;
}
public static void main(String[] args) {
Date now = new Date();
System.out.println("Now : " + now);
System.out.println("Next day: " + getNextDate(now));
}
}