1
1
package com.alamkanak.weekview
2
2
3
- import com.alamkanak.weekview.Constants.DAY_IN_MILLIS
4
3
import java.text.SimpleDateFormat
5
4
import java.util.Calendar
6
5
import java.util.Locale
7
6
import kotlin.math.roundToInt
8
7
8
+ internal const val DAY_IN_MILLIS = 1000L * 60L * 60L * 24L
9
+
9
10
internal interface Duration {
10
11
val inMillis: Int
11
12
}
@@ -20,6 +21,11 @@ internal inline class Hours(val hours: Int) : Duration {
20
21
get() = hours * (60 * 60 * 1_000 )
21
22
}
22
23
24
+ internal inline class Minutes (val minutes : Int ) : Duration {
25
+ override val inMillis: Int
26
+ get() = minutes * (60 * 1_000 )
27
+ }
28
+
23
29
internal inline class Millis (val millis : Int ) : Duration {
24
30
override val inMillis: Int
25
31
get() = millis
@@ -76,6 +82,10 @@ internal operator fun Calendar.minusAssign(days: Days) {
76
82
add(Calendar .DATE , days.days * (- 1 ))
77
83
}
78
84
85
+ internal operator fun Calendar.minusAssign (minutes : Minutes ) {
86
+ add(Calendar .MINUTE , minutes.minutes * (- 1 ))
87
+ }
88
+
79
89
internal operator fun Calendar.plus (hours : Hours ): Calendar {
80
90
return copy().apply {
81
91
add(Calendar .HOUR_OF_DAY , hours.hours)
@@ -120,18 +130,6 @@ internal fun Calendar.isBefore(other: Calendar) = timeInMillis < other.timeInMil
120
130
121
131
internal fun Calendar.isAfter (other : Calendar ) = timeInMillis > other.timeInMillis
122
132
123
- internal fun Calendar.isBetween (
124
- lhs : Calendar ,
125
- rhs : Calendar ,
126
- inclusive : Boolean = false
127
- ): Boolean {
128
- return if (inclusive) {
129
- timeInMillis >= lhs.timeInMillis && timeInMillis <= rhs.timeInMillis
130
- } else {
131
- timeInMillis > lhs.timeInMillis && timeInMillis < rhs.timeInMillis
132
- }
133
- }
134
-
135
133
internal val Calendar .isBeforeToday: Boolean
136
134
get() = isBefore(today())
137
135
0 commit comments