2020-06-07 15:19:09 +02:00
|
|
|
module time
|
|
|
|
|
2021-01-05 11:43:34 +01:00
|
|
|
// operator `==` returns true if provided time is equal to time
|
2020-06-10 11:14:55 +02:00
|
|
|
[inline]
|
2021-01-05 11:43:34 +01:00
|
|
|
pub fn (t1 Time) == (t2 Time) bool {
|
2020-06-07 15:19:09 +02:00
|
|
|
if t1.unix == t2.unix && t1.microsecond == t2.microsecond {
|
|
|
|
return true
|
|
|
|
}
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
|
2021-01-05 11:43:34 +01:00
|
|
|
// operator `!=` returns true if provided time is not equal to time
|
2020-12-16 12:10:02 +01:00
|
|
|
[inline]
|
2021-01-05 11:43:34 +01:00
|
|
|
pub fn (t1 Time) != (t2 Time) bool {
|
|
|
|
return !(t1 == t2)
|
2020-06-07 15:19:09 +02:00
|
|
|
}
|
|
|
|
|
2021-01-05 11:43:34 +01:00
|
|
|
// operator `<` returns true if provided time is less than time
|
2020-12-16 12:10:02 +01:00
|
|
|
[inline]
|
2021-01-05 11:43:34 +01:00
|
|
|
pub fn (t1 Time) < (t2 Time) bool {
|
2020-06-07 15:19:09 +02:00
|
|
|
if t1.unix < t2.unix || (t1.unix == t2.unix && t1.microsecond < t2.microsecond) {
|
|
|
|
return true
|
|
|
|
}
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
|
2021-01-10 21:05:05 +01:00
|
|
|
// operator `<=` returns true if provided time is less or equal to time
|
2020-12-16 12:10:02 +01:00
|
|
|
[inline]
|
2021-01-10 21:05:05 +01:00
|
|
|
pub fn (t1 Time) <= (t2 Time) bool {
|
2021-01-05 11:43:34 +01:00
|
|
|
return t1 < t2 || t1 == t2
|
2020-06-07 15:19:09 +02:00
|
|
|
}
|
|
|
|
|
2021-01-05 11:43:34 +01:00
|
|
|
// operator `>` returns true if provided time is greater than time
|
2020-12-16 12:10:02 +01:00
|
|
|
[inline]
|
2021-01-05 11:43:34 +01:00
|
|
|
pub fn (t1 Time) > (t2 Time) bool {
|
2020-06-07 15:19:09 +02:00
|
|
|
if t1.unix > t2.unix || (t1.unix == t2.unix && t1.microsecond > t2.microsecond) {
|
|
|
|
return true
|
|
|
|
}
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
|
2021-01-10 21:05:05 +01:00
|
|
|
// operator `>=` returns true if provided time is greater or equal to time
|
2020-12-16 12:10:02 +01:00
|
|
|
[inline]
|
2021-01-10 21:05:05 +01:00
|
|
|
pub fn (t1 Time) >= (t2 Time) bool {
|
2021-01-05 11:43:34 +01:00
|
|
|
return t1 > t2 || t1 == t2
|
2020-12-06 15:19:39 +01:00
|
|
|
}
|
2020-12-21 09:28:00 +01:00
|
|
|
|
2021-01-13 15:30:54 +01:00
|
|
|
// Time subtract using operator overloading.
|
2020-12-21 09:28:00 +01:00
|
|
|
[inline]
|
2020-12-21 20:20:00 +01:00
|
|
|
pub fn (lhs Time) - (rhs Time) Duration {
|
2020-12-21 09:28:00 +01:00
|
|
|
lhs_micro := lhs.unix * 1000 * 1000 + u64(lhs.microsecond)
|
|
|
|
rhs_micro := rhs.unix * 1000 * 1000 + u64(rhs.microsecond)
|
|
|
|
return (i64(lhs_micro) - i64(rhs_micro)) * microsecond
|
|
|
|
}
|