日付文字列と日付文字列の差分日数を取得する共通関数です。
サンプルメソッド
例)日付文字列と日付文字列の差分日数を取得する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
/** * 日付文字列と日付文字列の差分日数を取得する * @param ymd1 日付文字列1(YYYYMMDD) * @param ymd2 日付文字列2(YYYYMMDD) * @return 差分日数 */ public static int compareYmd(String ymd1, String ymd2){ try{ //日付文字列⇒Date型 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); sdf.setLenient(false); Date dt1 = sdf.parse(ymd1); Date dt2 = sdf.parse(ymd2); //日付の差分を取得 long d = (dt2.getTime() - dt1.getTime()) / (1000 * 60 * 60 * 24); //日付比較して返す return (int)d; }catch(Exception ex){ //例外発生時はint型の最大値を返す return Integer.MAX_VALUE; } } |
- (実行例)
- compareYmd("20180401", "20180404") ⇒4 compareYmd("20180401", "20180101") ⇒-90 compareYmd("20180499", "20180101") ⇒2147483647
メモ
- 日付文字列が不正な場合は、int型の最大値(2147483647)が返ります。