44 lines
690 B
Go
44 lines
690 B
Go
package main
|
|
|
|
import (
|
|
_ "embed"
|
|
"fmt"
|
|
"time"
|
|
)
|
|
|
|
//go:embed todo.txt
|
|
var todotxt []byte
|
|
|
|
func main() {
|
|
fmt.Println("hello!")
|
|
|
|
// text, _ := io.ReadAll(os.Stdin)
|
|
|
|
var lis Entries
|
|
lis.Parse(string(todotxt))
|
|
|
|
type entry struct {
|
|
time time.Time
|
|
e Entry
|
|
}
|
|
|
|
// now := time.Date(time.Now().Year(), 1, 1, 0, 0, 0, 0, time.UTC)
|
|
pq := PriorityQueue(func(a, b *entry) bool {
|
|
return a.time.Before(b.time)
|
|
})
|
|
|
|
now := time.Now()
|
|
for e := range lis.Iter() {
|
|
for p := range e.Project(now, 365*24*time.Hour) {
|
|
pq.Insert(&entry{p, e})
|
|
}
|
|
}
|
|
for !pq.IsEmpty() {
|
|
entry := pq.ExtractMin()
|
|
e, p := entry.e, entry.time
|
|
|
|
fmt.Println(p.Format("2006-01-02"), e.DetailString())
|
|
}
|
|
|
|
}
|