今天是2020年2月29日,是四年難得一次的閏日积蜻,也是我生命中的第11591天闯割。
我是自2010年10月28日(第8180天)開始保持了用數(shù)字記錄生命天數(shù)的習(xí)慣,貌似還是受了小學(xué)時(shí)候看到數(shù)學(xué)王子高斯在他通過(guò)博士論文答辯的那一天竿拆,把日子記成8113(相關(guān)詳情:https://www.zybang.com/question/1f81a8d5df8fe453a6619df1a09820c9.html)那個(gè)故事的影響宙拉,這個(gè)習(xí)慣也影響了我近十年。當(dāng)然了丙笋,我并不是每天都會(huì)去記上一天這樣保持著計(jì)算谢澈,那樣也太累了。而是御板,我自個(gè)兒寫了一段簡(jiǎn)單的 java 代碼來(lái)幫助我推算的锥忿,這樣,即便我記差了或忘了怠肋,直接一運(yùn)算便知今天是我生命中的第幾天了【戴蓿現(xiàn)在就將這段 Demo 代碼分享給大家吧~
package com.general.utils;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* 生命日期天數(shù)計(jì)算
*
* @author 新文創(chuàng)生活家
* @Date 2020/02/29
*/
public class BetweenDaysUtils {
/**
* 天數(shù)累加頻率(1天)
*/
private static final int dayUp = 1;
/**
* 一天當(dāng)中的毫秒數(shù)
*/
private static final long dayMillis = 24 * 3600 * 1000;
/**
* 日期格式化形式(yyyy-MM-dd)
*/
private static final String dateFormatPattern = "yyyy-MM-dd";
/**
* 出生日期
*/
private static Calendar birthDate = Calendar.getInstance();
/**
* 當(dāng)前日期
*/
private static Calendar nowaDate = Calendar.getInstance();
/**
* 從出生日期開始累加的計(jì)數(shù)日期
*/
private static Date nextDate;
public static void main(String[] args) {
birthDate.set(1988, 5, 6); // 設(shè)置出生日期(月份是從0開始的,所以5表示6月)
nowaDate.set(2020, 01, 29); // 設(shè)置當(dāng)前日期
getBetweenDays(birthDate, nowaDate);
}
/**
* 計(jì)算兩個(gè)日期之間相差的天數(shù)
*
* @param birthDate 出生日期
* @param nowaDate 當(dāng)前日期
*/
public static void getBetweenDays(Calendar birthDate, Calendar nowaDate) {
SimpleDateFormat sdf = new SimpleDateFormat(dateFormatPattern);
long dateMillis1 = birthDate.getTimeInMillis();
long dateMillis2 = nowaDate.getTimeInMillis();
int betweenDays = (int) ((dateMillis2 - dateMillis1) / dayMillis);
System.out.println("出生日期:" + sdf.format(birthDate.getTime()));
System.out.println("當(dāng)前日期:" + sdf.format(nowaDate.getTime()));
for (int i = 1; i <= betweenDays; i++) {
// 在出生日期的基礎(chǔ)上開始累加天數(shù),并賦值給 nextDate
birthDate.add(Calendar.DATE, dayUp);
nextDate = birthDate.getTime();
System.out.println(sdf.format(nextDate) + " 我生命中的第" + (i + 1) + "天钉答。");
}
}
}
運(yùn)算結(jié)果:
出生日期:1988-06-06
當(dāng)前日期:2020-02-29
1988-06-07 我生命中的第2天础芍。
1988-06-08 我生命中的第3天。
1988-06-09 我生命中的第4天数尿。
1988-06-10 我生命中的第5天仑性。
1988-06-11 我生命中的第6天。
1988-06-12 我生命中的第7天右蹦。
1988-06-13 我生命中的第8天诊杆。
……
2020-02-26 我生命中的第11588天。
2020-02-27 我生命中的第11589天何陆。
2020-02-28 我生命中的第11590天晨汹。
2020-02-29 我生命中的第11591天。
這段 Demo 代碼還是可以擴(kuò)展改造下的贷盲,比如可以再也寫幾個(gè)根據(jù)輸入的整數(shù)天數(shù)推算 n 天后或 n 天前的日期之類的方法宰缤。不過(guò)我想這些方法在開源盛行的今天,在網(wǎng)上或 java 自身的代碼框架里晃洒,其實(shí)也早就有現(xiàn)成封裝好了的吧~ 等我得空了再去深入挖掘下慨灭。