Fix OpeningSchedule.isOpen

Fix #838
This commit is contained in:
MM20 2024-05-17 18:18:33 +02:00
parent 44e40cde1d
commit f68f0175a6
No known key found for this signature in database
GPG Key ID: 0B61A8F2DEAFA389

View File

@ -11,6 +11,7 @@ import java.time.DayOfWeek
import java.time.Duration import java.time.Duration
import java.time.LocalDateTime import java.time.LocalDateTime
import java.time.LocalTime import java.time.LocalTime
import java.time.temporal.TemporalAdjusters
import android.location.Location as AndroidLocation import android.location.Location as AndroidLocation
interface Location : SavableSearchable { interface Location : SavableSearchable {
@ -235,9 +236,9 @@ data class OpeningHours(
) { ) {
fun isOpen(date: LocalDateTime = LocalDateTime.now()): Boolean { fun isOpen(date: LocalDateTime = LocalDateTime.now()): Boolean {
return date.dayOfWeek == dayOfWeek && val startTime = date.with(TemporalAdjusters.previousOrSame(dayOfWeek)).with(startTime)
date.toLocalTime().isAfter(startTime) && val endTime = startTime.plus(duration)
date.toLocalTime().isBefore(startTime.plus(duration)) return date in startTime..<endTime
} }
override fun toString(): String = "$dayOfWeek $startTime-${startTime.plus(duration)}" override fun toString(): String = "$dayOfWeek $startTime-${startTime.plus(duration)}"