TemporalAdjusters
Date-Time APIのTemporalAdjustersを使うと、日付オブジェクトをお手軽に変換できる。
LocalDateのインスタンスメソッドwithにTemporalAdjustersを渡す。
date.with(TemporalAdjusters.xxx()) // xxxで指定したメソッドに応じた日付が返る
xxxはさまざまなメソッドが用意されており、APIドキュメントから確認できる。
≫ TemporalAdjusters (Java Platform SE 8)
TemporalAdjustersの使用例
月末の日付を取得する
Kotlinで月末の日付を取得するには、TemporalAdjusters.lastDayOfMonth()を渡す。
import java.time.LocalDate
import java.time.temporal.TemporalAdjusters
fun main() {
    val date = LocalDate.now()
    val lastDayOfMonth = date.with(TemporalAdjusters.lastDayOfMonth())
    println(lastDayOfMonth)
}
月初の日付を取得する
TemporalAdjusters.firstDayOfMonth()を渡すと月初の日付を取得できる。
import java.time.LocalDate
import java.time.temporal.TemporalAdjusters
fun main() {
    val date = LocalDate.now()
    val firstDayOfMonth = date.with(TemporalAdjusters.firstDayOfMonth())
    println(firstDayOfMonth)
}
翌月の最初の日を見つける
TemporalAdjusters.firstDayOfNextMonth()を渡すと翌月の最初の日を取得できる。
import java.time.LocalDate
import java.time.temporal.TemporalAdjusters
fun main() {
    val date = LocalDate.now()
    val firstDayOfNextMonth = date.with(TemporalAdjusters.firstDayOfNextMonth())
    println(firstDayOfNextMonth)
}
その年の最後の日を見つける
TemporalAdjusters.lastDayOfYear()を渡すとその年の最後の日を取得できる。
import java.time.LocalDate
import java.time.temporal.TemporalAdjusters
fun main() {
    val date = LocalDate.now()
    val lastDayOfYear = date.with(TemporalAdjusters.lastDayOfYear())
    println(lastDayOfYear)
}
翌年の最初の日を見つける
TemporalAdjusters.firstDayOfNextYear()を渡すと翌年の最初の日を取得できる。
import java.time.LocalDate
import java.time.temporal.TemporalAdjusters
fun main() {
    val date = LocalDate.now()
    val firstDayOfNextYear = date.with(TemporalAdjusters.firstDayOfNextYear())
    println(firstDayOfNextYear)
}
月内の最初の月曜日を見つける
TemporalAdjusters.firstInMonth(DayOfWeek)を渡すと翌年の最初の日を取得できる。
import java.time.DayOfWeek
import java.time.LocalDate
import java.time.temporal.TemporalAdjusters
fun main() {
    val date = LocalDate.now()
    val firstMonday = date.with(TemporalAdjusters.firstInMonth(DayOfWeek.MONDAY))
    println(firstMonday)
}
次の月曜日を見つける
TemporalAdjusters.next(DayOfWeek)を渡すと次の月曜日を取得できる。
import java.time.DayOfWeek
import java.time.LocalDate
import java.time.temporal.TemporalAdjusters
fun main() {
    val date = LocalDate.now()
    val nextMonday = date.with(TemporalAdjusters.next(DayOfWeek.MONDAY))
    println(nextMonday)
}
\確かな知識を身に着けたい、Androidアプリ開発を学びたい人にオススメ!/
