LoginSignup
3
0

More than 1 year has passed since last update.

【Java令和対応記念】生まれてから今までどれくらい経ったか表示する

Last updated at Posted at 2019-04-27

背景

Javaが令和に対応した記念に作成しました
最新版のJavaを用いれば2019年5月1日には令和表記の日付が表示できるはず!
 →Java12.0.1で無事「令和」表記ができることを確認しました!(2019.5.1)

ついでにLocalDateTimeやPeriod、Durationの使い方もマスターできるはず!

ソースコード

Reiwa.java
import java.time.Duration;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.Period;
import java.time.chrono.JapaneseChronology;
import java.time.format.DateTimeFormatter;

/*
 * 生まれてから今までの期間を表示する
 */

public class Reiwa{
    public static void main(String[] args){

        // 日付の表記の仕方
        DateTimeFormatter formatter = DateTimeFormatter
                .ofPattern("Gyy年MM月dd日HH時mm分")
                .withChronology(JapaneseChronology.INSTANCE);

        System.out.println("●●さん"); // 対象となる人の名前を入れましょう

        // 誕生日を入れてください(例 2000年1月2日3時4分生まれ)
        LocalDateTime birthday = LocalDateTime.of(2000,1,2,3,4);
        System.out.println("誕生:" + formatter.format(birthday));

        LocalDateTime today = LocalDateTime.now();
        System.out.println("現在:" + formatter.format(today));

        // 生まれてから今日までの年月日
        LocalDate from = birthday.toLocalDate();
        LocalDate to = today.toLocalDate();
        Period period = Period.between(from, to);
        String yearMonthDay = period.getYears() + "年" + period.getMonths() + "カ月" + period.getDays() + "日";

        // 生まれてからの時間・分
        Duration duration = Duration.between(birthday, today);
        String hourMinutes = duration.toHoursPart() + "時間" + duration.toMinutesPart() + "分";

        System.out.print("★生まれてから" + yearMonthDay + hourMinutes);
    }
}

ポイント

生まれてから今まで何年何カ月何日経ったかを知るためにはPeriod
何時間何分経ったかを知るためにはDurationを使う必要がありました
ちょっと二度手間...

引数はPeriodではLocalDate、DurationではLocalDateTimeを使うのもねぇ...

もう少しきれいに書く方法ご存知の方はコメントください!

実行結果

2019年4月27日20時33分に実行したところ以下のようになりました。

●●さん
誕生:平成12年01月02日03時04分
現在:平成31年04月27日20時33分
★生まれてから19年3カ月25日17時間29分

New!!
2019年5月1日16時55分に実行したところ以下のようになりました。

●●さん
誕生:平成12年01月02日03時04分
現在:令和01年05月01日16時55分
★生まれてから19年3カ月29日13時間51分
3
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0