【Kotlin/Android】YearMonthクラスの使い方!年月を表現するクラスと日数の取得方法
この記事からわかること
- Android Studio/Kotlinで年月表現するためのYearMonthクラスの使い方
- 月の日数を取得する方法
- 加算/減算や比較など
index
[open]
\ アプリをリリースしました /
友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-
posted withアプリーチ
環境
- 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
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。