tme

Toggl like Time Manager
git clone git://gtms.dev/tme
Log | Files | Refs

entry.go (567B)


      1 package main
      2 
      3 import "time"
      4 
      5 type Entry struct {
      6 	Completed bool
      7 	TimeRange TimeRange
      8 }
      9 
     10 func NewCompletedEntry(start time.Time, stop time.Time) (Entry, error) {
     11 	timeRange, err := NewTimeRange(start, stop)
     12 	if err != nil {
     13 		return Entry{}, err
     14 	}
     15 
     16 	return Entry{TimeRange: timeRange, Completed: true}, nil
     17 }
     18 
     19 func NewRunningEntry(start time.Time) Entry {
     20 	timeRange, _ := NewTimeRange(start, start.Add(time.Second))
     21 	return Entry{TimeRange: timeRange, Completed: false}
     22 }
     23 
     24 func (e Entry) Duration() time.Duration {
     25 	return e.TimeRange.Stop.Sub(e.TimeRange.Start)
     26 }