このサイトを参考に下記のように日付を比べるコードを書いてみました。
date1とdate2を比較してTextViewに表示させています。
しかし挙動がうまくいっておらず1900/02/04と2022/07/31を比べると44587と表示されるのですが1900/02/04と2022/08/01を比べた際は44557と表示されてしまいます。
07/31が44587という数値が正しいとすると08/01は44588と表示されるはずかと思うのですがどこかコードのおかしな部分ありますでしょうか?
よろしくお願い致します。
import android.content.Intent import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.TextView import java.text.DateFormat import java.text.SimpleDateFormat import java.time.Duration import java.util.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val df = SimpleDateFormat("yyyy/mm/dd") val date1 = df.parse("1900/02/04") val date2 = df.parse("2022/08/01") differenceDays(date2, date1) val textView = findViewById<TextView>(R.id.textView) textView .text = differenceDays(date2, date1).toString() } fun differenceDays(date1: Date, date2: Date): Int { val dateTime1 = date1.time val dateTime2 = date2.time val one_date_time = 1000 * 60 * 60 * 24 val diffDays = (dateTime1 - dateTime2) / one_date_time return diffDays.toInt() } }

回答1件
あなたの回答
tips
プレビュー