/** * 開始月から終了月まで日数を算出する * * @param startYmd 開始日(YYYYMMDD) * @param endYmd 終了日(YYYYMMDD) * @return 日数 */ public static int calcDayDistance(String startYmd, String endYmd) { return (int) Math.abs( (DateUtil.toDate(endYmd, DATE_PATTERN_0).getTime() - DateUtil.toDate(startYmd, DATE_PATTERN_0).getTime()) / (1000 * 60 * 60 * 24)); }
/** * 指定日付の指定月数後の日付を取得する * * @param date 指定日付(YYYYMMDD/ YYYYMM) * @param months 指定月 * @return 指定日付の指定月数後の日付 */ public static String addMonth(final String date, final int months) { if (StringUtil.isEmpty(date)) { return null; } // フォーマットデータ取得 String fromatDate = ""; if (date.length() == 6) { fromatDate = date + "0"; } else { fromatDate = date; } // 指定日付の指定月数後の日付を取得する Date retDate = addMonth(DateUtil.toDate(fromatDate, DATE_PATTERN_0), months); Calendar calendar = Calendar.getInstance(); calendar.setTime(retDate); int month = calendar.get(Calendar.MONTH) + 1; String year = String.valueOf(calendar.get(Calendar.YEAR)); int day = calendar.get(Calendar.DATE); // 戻り値作成 String yearMonth = year + (month > 9 ? String.valueOf(month) : String.valueOf("0" + month)); if (date.length() == 6) { return yearMonth; } else { return yearMonth + (day > 9 ? String.valueOf(day) : String.valueOf("0" + day)); } }
/** * 指定されたフォーマットによって、システム日付演算機能 * * @param date 指定日付 * @param days 追加される日付 * @param pattern パターン * @return String 日付 */ public static String addDays(String date, int days, String pattern) { Calendar calendar = Calendar.getInstance(); calendar.setTime(DateUtil.toDate(date, pattern)); calendar.add(Calendar.DATE, days); return toString(calendar.getTime(), pattern); }
/** * 指定された日付によって、システム日付演算機能(yyyyMMdd) * * @param date 指定日付 * @param days 追加される日付 * @return String 日付 */ public static String addDays(String date, int days) { Calendar calendar = Calendar.getInstance(); calendar.setTime(DateUtil.toDate(date, DATE_PATTERN_0)); calendar.add(Calendar.DATE, days); return toString(calendar.getTime(), DATE_PATTERN_0); }
/** * 年取得 yyyy * * @param date 日付(yyyymmdd) * @return 年 */ public static String getYear(String date) { if (StringUtil.isEmpty(date)) { return ""; } Calendar calendar = Calendar.getInstance(); calendar.setTime(DateUtil.toDate(date, DATE_PATTERN_0)); return String.valueOf(calendar.get(Calendar.YEAR)); }
/** * 月取得 MM (01,02,03......10,11,12) * * @param date 日付 * @param pattern パターン * @return 月 */ public static String getMonth(String date, String pattern) { if (StringUtil.isEmpty(date)) { return ""; } Calendar calendar = Calendar.getInstance(); calendar.setTime(DateUtil.toDate(date, pattern)); int month = calendar.get(Calendar.MONTH) + 1; return month > 9 ? String.valueOf(month) : String.valueOf("0" + month); }
/** * 日付時刻形式チェック(YYMMDDHHMMSS) * * @param dateStr 日付時刻文字列 * @return フォーマット可否 */ public static boolean checkYYMMDDHHMMSS(String dateStr) { String yyMMdd = dateStr.substring(0, 6); String hhmmss = dateStr.substring(6, 12); String yyyyMMdd = DateUtil.covertDateToOtherPattern(yyMMdd, DATE_PATTERN_7, DATE_PATTERN_0); if (!isDate(yyyyMMdd)) { return false; } if (!isTime(hhmmss)) { return false; } return true; }
/** * 年月取得 YYYYMM * * @param date 日付(yyyymmdd) * @return 月 */ public static String getYearMonth(String date) { if (StringUtil.isEmpty(date)) { return ""; } String fromatDate = ""; if (date.length() == 6) { fromatDate = date + "0"; } else { fromatDate = date; } Calendar calendar = Calendar.getInstance(); calendar.setTime(DateUtil.toDate(fromatDate, DATE_PATTERN_0)); int month = calendar.get(Calendar.MONTH) + 1; // 年月取得 YYYYMM String year = getYear(fromatDate); String yearMonth = year + (month > 9 ? String.valueOf(month) : String.valueOf("0" + month)); return yearMonth; }