[Kotlin] 使用頻度【高】!日付の加算・減算を行う

Kotlinで日付の計算(加算・減産)を行うことが多いのでメモ。

日付の加算・減算

現在日付の1日前を計算する
val cal = Calendar.getInstance() # Calendarのインスタンスを生成
cal.time = Date()                # 現在日付をDate型→Calendar型に変換
cal.add(Calendar.DATE,-1)        # この例では1日前を計算しています
val date1: Date = cal.time       # Calendar型→Date型に変換

いちいち、Calendar型 ⇔ Date型を行き来するのが面倒ですね。。。

add関数ですが、第一引数で何に対して加算・減算するか指定します。
例だと、Calendar.DATEなので、日付に対して。
他には、、、
Calendar.YEAR
Calendar.MONTH
Calendar.DATE
Calendar.HOUR_OF_DAY
Calendar.MINUTE
Calendar.SECOND
などが、指定可能です。
addの第2引数で渡すパラメータですが、今回は-1しているので、1日前。一日後であれば、1を入力してもらえれば大丈夫です。

関数化して使いまわす

日付計算を複数個所でするなら、関数化して使いまわすのが便利です。

fun calcDate(date: Date,intervalNum: Int):Date{
    val cal = Calendar.getInstance()
    cal.time = date
    cal.add(Calendar.DATE,intervalNum)
    return cal.time
}

第1引数でDate型を、それに対して加減算する日数を第2引数で指定。

計算後の日付をDate型で返します。