【Kotlin/Android】YearMonthクラスの使い方!年月を表現するクラスと日数の取得方法
この記事からわかること
- Android Studio/Kotlinで年月表現するためのYearMonthクラスの使い方
- 月の日数を取得する方法
- 加算/減算や比較など
index
[open]
\ アプリをリリースしました /
環境
- Android Studio:Flamingo
- Kotlin:1.8.20
YearMonthクラス
Kotlin(Java)で定義されているYearMonthは年月表現をするためのクラスです。このクラスを使用することでその月の日数の取得や加算/減算、比較などの操作が可能になっています。
YearMonthはJava 8から導入された日時APIに含まれているので全てのバージョンで使えるわけでないので注意してください。使用したい場合はJava 8が使用できるAPIレベルであるBuild.VERSION_CODES.O以降のバージョンでのみYearMonthクラスを使用し、それ以外でビルドされた時にコンパイルエラーが出るようにRequiresApiアノテーションを付与しておくと分岐などを実装せずにスムーズに記述することができるようになります。
@RequiresApi(Build.VERSION_CODES.O)
使い方
YearMonthオブジェクトをインスタンス化するにはofメソッドを使用します。引数には取得したい年月を渡します。
val yearMonth: YearMonth = YearMonth.of(2024, 4)
年と月を取得する
YearMonthオブジェクトではyear/monthプロパティからその年月の年と月の情報を取得することができます。ただmonthプロパティから取得できるのはMonth型なのでInt型で取得したい場合はmonthValueプロパティを使用します。
println(yearMonth.year) // 2024:Int型
println(yearMonth.month) // APRIL:Month型
println(yearMonth.monthValue) // 4:Int型
年と月の日数を取得する
YearMonthオブジェクトではlengthOfYear/lengthOfMonthメソッドを使用してその年月の日数を取得することができます。
println(yearMonth.lengthOfYear()) // 366
println(yearMonth.lengthOfMonth()) // 30
加算/減算
YearMonthオブジェクトではplusYearsやminusMonthsメソッドを使用してその年月に対して指定の年数を加算/減算することができます。
println(yearMonth.plusYears(1)) // 2025-04
println(yearMonth.minusMonths(2)) // 2024-02
比較
YearMonthオブジェクトは比較可能になっているのでcompareToメソッドを使用してその年月同士の差を取得することができます。
val yearMonth1 = YearMonth.of(2024, 4)
val yearMonth2 = YearMonth.of(2020, 8)
val result = yearMonth1.compareTo(yearMonth2)
println(result) // 4
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。







