마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

디데이 계산하는데 하루 오차가 발생합니다 도와주세요

0 추천
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_home)

    var year = intent.getStringExtra("year")
    var month = intent.getStringExtra("month")
    var day = intent.getStringExtra("day")

    Log.d("select_day", "${year}.${month}.${day}")

    var selectday = Calendar.getInstance()
    selectday.set(year.toInt(), month.toInt(), day.toInt())
    
    var today = Calendar.getInstance()
    var yearto = today.get(Calendar.YEAR)
    var monthto = today.get(Calendar.MONTH)
    var dayto = today.get(Calendar.DAY_OF_MONTH)
    today.set(yearto, monthto+1, dayto)
    var todaym = today.timeInMillis / 86400000
    var selectdaym = selectday.timeInMillis / 86400000
    var deltil = selectdaym - todaym

    testtv.setText("${deltil.toInt()}")

}

인텐트로 넘어온 값이 year : 2019, month : 9, day : 1 이고 현재 날짜가 yearto : 2019, monthto : 8, dayto : 28 일경우 계산대로라면 4일이 텍스트값으로 출력되야하지만 3일이 출력되네요... 만약 8월31일로 하면 3일로 정상적으로 출력이되고 9월2일로 설정했을경우에는 4일로 출력이 됩니다 월이 바뀐 1일만 계산이 이상하게 되고 2020년으로 1년후로 계산하면 366일이 나오네요... 해결방법좀 알려주세요

wngus457 (180 포인트) 님이 2019년 8월 30일 질문

1개의 답변

0 추천
Calandar로 고생하지 마시고 날짜처리는 threetenabp를 쓰세요.

https://github.com/JakeWharton/ThreeTenABP

좀 더 자세한 것은 아래글을 읽어보세요.

https://d2.naver.com/helloworld/645609
익명사용자 님이 2019년 8월 30일 답변
...