Kotlin 日時の差分を求めるサンプル

Kotlinの日時の差分を求めるサンプルです。

目次

サンプル 月の差分を求める
  日の差分を求める
  時間・分・秒の差分を求める

月の差分を求める

年月の差分を求めるサンプルです。
2020年10月から2021年1月の差分を求めます。

import java.time.temporal.ChronoUnit
import java.time.LocalDate

fun main(args: Array<String>) {

    // 1.年月日をセット
    val ldate1 = LocalDate.of(2020, 10, 1)

    // 2.年月日をセット
    val ldate2 = LocalDate.of(2021, 1, 12)

    println(
        ChronoUnit.MONTHS.between(ldate1, ldate2)
    ) //3
}

7,10行目は、LocalDateクラスで年月日のインスタンスを生成しています。

13行目は、ChronoUnitのMONTHSとbetweenメソッドで年月の差分を求めています。

Chronoは、時という意味です。

以下は、javaのChronoUnit列挙型のリンクです。
https://docs.oracle.com/javase/jp/8/docs/api/java/time/temporal/ChronoUnit.html#between-java.time.temporal.Temporal-java.time.temporal.Temporal-

 

日の差分を求める

日数の差分を求めるサンプルです。
2020/12/31の0時から2021/1/2の0時の差分を求めます。

import java.time.temporal.ChronoUnit
import java.time.LocalDate

fun main(args: Array<String>) {

    // 1.年月日をセット
    val ldate1 = LocalDate.of(2020, 12, 31)

    // 2.年月日をセット
    val ldate2 = LocalDate.of(2021, 1, 2)

    println(ChronoUnit.DAYS.between(ldate1, ldate2)) //2
}

7,10行目は、LocalDateクラスで年月日のインスタンスを生成しています。
12行目は、ChronoUnitのDAYSとbetweenメソッドで日の差分を求めています。

時間・分・秒の差分を求める

時・分・秒の差分を求めるサンプルです。

import java.time.temporal.ChronoUnit
import java.time.LocalDateTime

fun main(args: Array<String>) {

    // 1.年月日時分秒をセット
    val ldate1 = LocalDateTime.of(2019, 12, 31, 0, 0, 0)

    // 2.年月日時分秒をセット
    val ldate2 = LocalDateTime.of(2020, 1, 2, 0, 0, 0)

    println(
        ChronoUnit.HOURS.between(ldate1, ldate2)
    ) //48 (時間)

    println(
        ChronoUnit.MINUTES.between(ldate1, ldate2)
    ) //2880 (分)

    println(
        ChronoUnit.SECONDS.between(ldate1, ldate2)
    ) //172800 (秒)
}

LocalDateTimeクラスで年月日時分秒のインスタンスを生成し
ChronoUnitのHOURS,MINUTES,SECONDSとbetweenメソッドで差分を求めています。

関連の記事

Kotlin 日時を計算するサンプル(加算と減算)

△上に戻る