package insping;
import java.time.LocalDate;
import java.time.Period;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
public class Test1 {
public static void main(String[] args) {
//LocalDate today = LocalDate.now();
String SkyNgFromStr = "19931019";
String SkyNgToStr = "20170601";
String format = "yyyyMMdd";
LocalDate SkyNgTo = convertToLocalDate(SkyNgToStr,format);
System.out.println("SkyNgToStr : " + SkyNgTo);
LocalDate SkyNgFrom = convertToLocalDate(SkyNgFromStr,format);
System.out.println("SkyNgFromStr : " + SkyNgFrom);
Period p = Period.between(SkyNgFrom, SkyNgTo);
System.out.printf("年龄 : %d 年 %d 月 %d 日", p.getYears(), p.getMonths(), p.getDays());
System.out.println("*******");
System.out.println(p.getYears()*12+p.getMonths()+(p.getDays()== 0 ? 1:2));
System.out.println("*******");
long MonthsDiff = ChronoUnit.MONTHS.between(SkyNgFrom, SkyNgTo)+(Integer.parseInt(SkyNgFromStr.substring(6)) == Integer.parseInt(SkyNgToStr.substring(6))? 1:2);
System.out.println(+ MonthsDiff);
}
// public static LocalDateTime toLocalDateTime(String date, String format) throws ParseException {
// SimpleDateFormat sdf = new SimpleDateFormat(format);
// Date formatDate = sdf.parse(date);
// return LocalDateTime.ofInstant(formatDate.toInstant(), ZoneId.systemDefault());
// }
// 文字列の日付をフォーマット(yyyyMMddやyyyy/mm/ddなど)をもとにLocalDate型に変換するメソッド
public static LocalDate convertToLocalDate(String date, String format) {
// シンプルにLocalDate型に変換された日付を返却
return LocalDate.parse(date, DateTimeFormatter.ofPattern(format));
}
}