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メソッドで差分を求めています。
関連の記事