Format
This commit is contained in:
@ -1,42 +1,41 @@
|
|||||||
package model
|
package model
|
||||||
|
|
||||||
import (
|
import (
|
||||||
sqldriver "database/sql/driver"
|
sqldriver "database/sql/driver"
|
||||||
"errors"
|
"errors"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Time time.Time
|
type Time time.Time
|
||||||
|
|
||||||
func MakeTimeNow() Time {
|
func MakeTimeNow() Time {
|
||||||
return Time(time.Now().UTC())
|
return Time(time.Now().UTC())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self Time) AsUTCString() string {
|
func (self Time) AsUTCString() string {
|
||||||
return time.Time(self).Format(time.RFC3339)
|
return time.Time(self).Format(time.RFC3339)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self Time) Value() (sqldriver.Value, error) {
|
func (self Time) Value() (sqldriver.Value, error) {
|
||||||
return self.AsUTCString(), nil
|
return self.AsUTCString(), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *Time) Scan(value any) error {
|
func (self *Time) Scan(value any) error {
|
||||||
if valueStr, ok := value.(string); ok {
|
if valueStr, ok := value.(string); ok {
|
||||||
parsedTime, err := time.Parse(time.RFC3339, valueStr)
|
parsedTime, err := time.Parse(time.RFC3339, valueStr)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
*self = Time(parsedTime.UTC())
|
*self = Time(parsedTime.UTC())
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
} else {
|
} else {
|
||||||
return errors.New("Expected a string")
|
return errors.New("Expected a string")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (from Time) Compare(to Time) int {
|
func (from Time) Compare(to Time) int {
|
||||||
return time.Time(from).Compare(time.Time(to))
|
return time.Time(from).Compare(time.Time(to))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *Time) Add(duration time.Duration) {
|
func (self *Time) Add(duration time.Duration) {
|
||||||
*self = Time(time.Time(*self).Add(duration))
|
*self = Time(time.Time(*self).Add(duration))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
package model
|
package model
|
||||||
|
|
||||||
type Timer struct {
|
type Timer struct {
|
||||||
Id UUID
|
Id UUID
|
||||||
Name string
|
Name string
|
||||||
StartTime Time
|
StartTime Time
|
||||||
EndTime Time
|
EndTime Time
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self Timer) IsFinished() bool {
|
func (self Timer) IsFinished() bool {
|
||||||
return MakeTimeNow().Compare(self.EndTime) >= 0
|
return MakeTimeNow().Compare(self.EndTime) >= 0
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user