From 2301158925743c7ee5113729bec91c90ce117cee Mon Sep 17 00:00:00 2001 From: sgallese Date: Sun, 26 Sep 2021 06:26:43 -0700 Subject: [PATCH] Migrate getStartOfToday --- .../kotlin/org/isoron/platform/time/Dates.kt | 2 ++ .../kotlin/org/isoron/platform/time/DatesTest.kt | 13 +++++++++++++ .../org/isoron/uhabits/core/io/HabitsCSVExporter.kt | 3 ++- .../java/org/isoron/uhabits/core/utils/DateUtils.kt | 4 +--- .../org/isoron/uhabits/core/utils/DateUtilsTest.kt | 9 --------- 5 files changed, 18 insertions(+), 13 deletions(-) diff --git a/uhabits-core/src/commonMain/kotlin/org/isoron/platform/time/Dates.kt b/uhabits-core/src/commonMain/kotlin/org/isoron/platform/time/Dates.kt index 8bfed3470..9837f6da6 100644 --- a/uhabits-core/src/commonMain/kotlin/org/isoron/platform/time/Dates.kt +++ b/uhabits-core/src/commonMain/kotlin/org/isoron/platform/time/Dates.kt @@ -203,6 +203,8 @@ data class LocalDate(val daysSince2000: Int) { } fun getStartOfDay(timestamp: Long): Long = (timestamp / DAY_LENGTH) * DAY_LENGTH + + fun getStartOfToday(): Long = getStartOfDay(getLocalTime()) } } diff --git a/uhabits-core/src/commonTest/kotlin/org/isoron/platform/time/DatesTest.kt b/uhabits-core/src/commonTest/kotlin/org/isoron/platform/time/DatesTest.kt index e837c6d5f..deb29a750 100644 --- a/uhabits-core/src/commonTest/kotlin/org/isoron/platform/time/DatesTest.kt +++ b/uhabits-core/src/commonTest/kotlin/org/isoron/platform/time/DatesTest.kt @@ -23,6 +23,7 @@ import kotlinx.datetime.LocalDateTime import kotlinx.datetime.TimeZone import kotlinx.datetime.toInstant import org.isoron.platform.time.LocalDate.Companion.getStartOfDay +import org.isoron.platform.time.LocalDate.Companion.getStartOfToday import org.isoron.platform.time.LocalDate.Companion.getWeekdaySequence import kotlin.test.Test import kotlin.test.assertContentEquals @@ -67,4 +68,16 @@ class DatesTest { val startOfDay = getStartOfDay(laterInTheDayUtc) assertEquals(expectedStartOfDayUtc, startOfDay) } + @Test + fun testGetStartOfToday() { + val expectedStartOfDayUtc = LocalDateTime( + 2017, 1, 1, 0, 0, 0, 0 + ).toInstant(TimeZone.UTC).toEpochMilliseconds() + val laterInTheDayUtc = LocalDateTime( + 2017, 1, 1, 20, 0, 0, 0 + ).toInstant(TimeZone.UTC).toEpochMilliseconds() + LocalDate.fixedLocalTime = laterInTheDayUtc + val startOfToday = getStartOfToday() + assertEquals(expectedStartOfDayUtc, startOfToday) + } } diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/io/HabitsCSVExporter.kt b/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/io/HabitsCSVExporter.kt index 341b6716c..21fa230a4 100644 --- a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/io/HabitsCSVExporter.kt +++ b/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/io/HabitsCSVExporter.kt @@ -18,6 +18,7 @@ */ package org.isoron.uhabits.core.io +import org.isoron.platform.time.LocalDate.Companion.getStartOfToday import org.isoron.uhabits.core.models.Entry import org.isoron.uhabits.core.models.EntryList import org.isoron.uhabits.core.models.Habit @@ -221,7 +222,7 @@ class HabitsCSVExporter( private fun writeZipFile(): String { val dateFormat = DateFormats.getCSVDateFormat() - val date = dateFormat.format(DateUtils.getStartOfToday()) + val date = dateFormat.format(getStartOfToday()) val zipFilename = String.format("%s/Loop Habits CSV %s.zip", exportDirName, date) val fos = FileOutputStream(zipFilename) val zos = ZipOutputStream(fos) diff --git a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/utils/DateUtils.kt b/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/utils/DateUtils.kt index 6e2aa2b2b..c2f0b0e46 100644 --- a/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/utils/DateUtils.kt +++ b/uhabits-core/src/jvmMain/java/org/isoron/uhabits/core/utils/DateUtils.kt @@ -26,6 +26,7 @@ import org.isoron.platform.time.LocalDate.Companion.HOUR_LENGTH import org.isoron.platform.time.LocalDate.Companion.MINUTE_LENGTH import org.isoron.platform.time.LocalDate.Companion.getLocalTime import org.isoron.platform.time.LocalDate.Companion.getStartOfDay +import org.isoron.platform.time.LocalDate.Companion.getStartOfToday import org.isoron.platform.time.LocalDate.Companion.getTimeZone import org.isoron.uhabits.core.models.Timestamp import java.util.Calendar @@ -152,9 +153,6 @@ abstract class DateUtils { return getStartOfDay(timestamp - offset) } - @JvmStatic - fun getStartOfToday(): Long = getStartOfDay(getLocalTime()) - @JvmStatic fun getStartOfTomorrowWithOffset(): Long = getUpcomingTimeInMillis( startDayHourOffset, diff --git a/uhabits-core/src/jvmTest/java/org/isoron/uhabits/core/utils/DateUtilsTest.kt b/uhabits-core/src/jvmTest/java/org/isoron/uhabits/core/utils/DateUtilsTest.kt index 4ace03328..ed8c1fe78 100644 --- a/uhabits-core/src/jvmTest/java/org/isoron/uhabits/core/utils/DateUtilsTest.kt +++ b/uhabits-core/src/jvmTest/java/org/isoron/uhabits/core/utils/DateUtilsTest.kt @@ -120,15 +120,6 @@ class DateUtilsTest : BaseUnitTest() { assertThat(Timestamp(FIXED_LOCAL_TIME), equalTo(today)) } - @Test - fun testGetStartOfToday() { - val expectedStartOfDayUtc = unixTime(2017, Calendar.JANUARY, 1, 0, 0) - val laterInTheDayUtc = unixTime(2017, Calendar.JANUARY, 1, 20, 0) - LocalDate.fixedLocalTime = laterInTheDayUtc - val startOfToday = DateUtils.getStartOfToday() - assertThat(expectedStartOfDayUtc, equalTo(startOfToday)) - } - @Test fun testGetStartOfTomorrowWithOffset_priorToOffset() { val hourOffset = 3