79 lines
5.2 KiB
Kotlin
79 lines
5.2 KiB
Kotlin
package korlibs.time
|
|
|
|
import korlibs.time.locale.spanish
|
|
import kotlin.test.Test
|
|
import kotlin.test.assertEquals
|
|
|
|
class DateTest {
|
|
@Test
|
|
fun test() {
|
|
val date = Date(2019, Month.September, 18)
|
|
val date2 = Date(2019, Month.September, 19)
|
|
val time = Time(13, 9, 37, 150)
|
|
|
|
assertEquals(DayOfWeek.Wednesday, date.dayOfWeek)
|
|
assertEquals(DayOfWeek.Thursday, date2.dayOfWeek)
|
|
assertEquals(4, date2.dayOfWeekInt)
|
|
assertEquals(1, Date(2019, Month.January, 1).dayOfYear)
|
|
assertEquals(262, date2.dayOfYear)
|
|
assertEquals(2019, date2.year)
|
|
assertEquals(Year(2019), date2.yearYear)
|
|
|
|
assertEquals("2019-09-18", date.toString())
|
|
assertEquals("13:09:37.150", time.toString())
|
|
assertEquals("Wed, 18 Sep 2019 00:00:00 UTC", (date.dateTimeDayStart).toStringDefault())
|
|
assertEquals("Wed, 18 Sep 2019 13:09:37 UTC", (date + time).toStringDefault())
|
|
assertEquals("2019-10-01", (Date(2019, Month.September, 30) + 1.days).toString())
|
|
assertEquals("2019-10-30", (Date(2019, Month.September, 30) + 1.months).toString())
|
|
assertEquals("2019-09-30", (Date(2019, Month.October, 1) - 1.days).toString())
|
|
assertEquals("2019-09-01", (Date(2019, Month.October, 1) - 1.months).toString())
|
|
|
|
assertEquals("2019-10-31", (Date(2019, Month.September, 30) + DateTimeSpan(1.months, 1.days)).toString())
|
|
assertEquals("2019-08-31", (Date(2019, Month.October, 1) - DateTimeSpan(1.months, 1.days)).toString())
|
|
|
|
(Time(9, 0) .. Time(19, 30)).let { range ->
|
|
assertEquals(true, range.contains(Time(11, 0)))
|
|
assertEquals(false, range.contains(Time(8, 59, 59, 999)))
|
|
assertEquals(false, range.contains(Time(19, 31)))
|
|
}
|
|
|
|
(Date(2019, 9, 18) .. Date(2019, 10, 2)).let { range ->
|
|
assertEquals(true, range.contains(Date(2019, 9, 18)))
|
|
assertEquals(true, range.contains(Date(2019, 10, 1)))
|
|
assertEquals(false, range.contains(Date(2019, 9, 17)))
|
|
assertEquals(false, range.contains(Date(2019, 10, 3)))
|
|
}
|
|
|
|
assertEquals("Wed, 18 Sep 2019 00:00:00 UTC", (Date(2019, Month.September, 17) + Time(24)).toStringDefault())
|
|
assertEquals("Tue, 17 Sep 2019 00:00:00 UTC", (Date(2019, Month.September, 18) - Time(24)).toStringDefault())
|
|
|
|
assertEquals("Wed, 18 Sep 2019 01:02:20 UTC", (Date(2019, Month.September, 18) + Time(hour = 1, minute = 1, second = 80)).toStringDefault())
|
|
val format = "EEE, dd MMM YYYY HH:mm:ss.SSS"
|
|
assertEquals("Wed, 18 Sep 2019 01:02:20.300", (Date(2019, Month.September, 18) + Time(hour = 1, minute = 1, second = 80, millisecond = 300)).format(format))
|
|
assertEquals("Wed, 18 Sep 2019 01:02:21.300", (Date(2019, Month.September, 18) + Time(hour = 1, minute = 1, second = 80, millisecond = 1300)).format(format))
|
|
assertEquals("Wed, 18 Sep 2019 23:58:39.700", (Date(2019, Month.September, 18) - Time(hour = 1, minute = 1, second = 80, millisecond = 300)).format(format))
|
|
assertEquals("Wed, 18 Sep 2019 23:58:38.700", (Date(2019, Month.September, 18) - Time(hour = 1, minute = 1, second = 80, millisecond = 1300)).format(format))
|
|
}
|
|
|
|
@Test
|
|
fun test2() {
|
|
fun date(dayOfMonth: Int, dayOfWeek: DayOfWeek, locale: KlockLocale) = Date(2019, Month.September, dayOfMonth).inThisWeek(dayOfWeek, locale).toString()
|
|
|
|
for (dayOfMonth in 16..22) assertEquals("2019-09-16", date(dayOfMonth, DayOfWeek.Monday, KlockLocale.spanish), "failed for day = $dayOfMonth")
|
|
for (dayOfMonth in 16..22) assertEquals("2019-09-17", date(dayOfMonth, DayOfWeek.Tuesday, KlockLocale.spanish), "failed for day = $dayOfMonth")
|
|
for (dayOfMonth in 16..22) assertEquals("2019-09-18", date(dayOfMonth, DayOfWeek.Wednesday, KlockLocale.spanish), "failed for day = $dayOfMonth")
|
|
for (dayOfMonth in 16..22) assertEquals("2019-09-19", date(dayOfMonth, DayOfWeek.Thursday, KlockLocale.spanish), "failed for day = $dayOfMonth")
|
|
for (dayOfMonth in 16..22) assertEquals("2019-09-20", date(dayOfMonth, DayOfWeek.Friday, KlockLocale.spanish), "failed for day = $dayOfMonth")
|
|
for (dayOfMonth in 16..22) assertEquals("2019-09-21", date(dayOfMonth, DayOfWeek.Saturday, KlockLocale.spanish), "failed for day = $dayOfMonth")
|
|
for (dayOfMonth in 16..22) assertEquals("2019-09-22", date(dayOfMonth, DayOfWeek.Sunday, KlockLocale.spanish), "failed for day = $dayOfMonth")
|
|
|
|
for (dayOfMonth in 15..21) assertEquals("2019-09-15", date(dayOfMonth, DayOfWeek.Sunday, KlockLocale.english), "failed for day = $dayOfMonth")
|
|
for (dayOfMonth in 15..21) assertEquals("2019-09-16", date(dayOfMonth, DayOfWeek.Monday, KlockLocale.english), "failed for day = $dayOfMonth")
|
|
for (dayOfMonth in 15..21) assertEquals("2019-09-17", date(dayOfMonth, DayOfWeek.Tuesday, KlockLocale.english), "failed for day = $dayOfMonth")
|
|
for (dayOfMonth in 15..21) assertEquals("2019-09-18", date(dayOfMonth, DayOfWeek.Wednesday, KlockLocale.english), "failed for day = $dayOfMonth")
|
|
for (dayOfMonth in 15..21) assertEquals("2019-09-19", date(dayOfMonth, DayOfWeek.Thursday, KlockLocale.english), "failed for day = $dayOfMonth")
|
|
for (dayOfMonth in 15..21) assertEquals("2019-09-20", date(dayOfMonth, DayOfWeek.Friday, KlockLocale.english), "failed for day = $dayOfMonth")
|
|
for (dayOfMonth in 15..21) assertEquals("2019-09-21", date(dayOfMonth, DayOfWeek.Saturday, KlockLocale.english), "failed for day = $dayOfMonth")
|
|
}
|
|
}
|