Running list
//show.go
package main
import (
"fmt"
"time"
)
func PrintTasks(tasks []Task) {
printCanvas()
for _, t := range tasks {
printTasks(t)
}
}
func printCanvas() {
day := time.Now()
fmt.Printf("\tsun\tmon\ttue\twen\tthu\tfri\tsat\t\t Weeknumber %d\n", (day.YearDay() / 7))
fmt.Printf("\t#############################################################################################\n")
}
func printTasks(t Task) {
day := time.Now()
week := [7]int{0, 0, 0, 0, 0, 0, 0}
switch t.Done {
case -1:
for i := t.CreateDay; i < day.Weekday(); i++ {
week[i] = 2
}
default:
for i := t.CreateDay; i < t.Done; i++ {
week[i] = 2
}
week[t.Done] = 1
}
fmt.Printf(
"\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n",
printDays(week[0]),
printDays(week[1]),
printDays(week[2]),
printDays(week[3]),
printDays(week[4]),
printDays(week[5]),
printDays(week[6]),
t.Description,
)
}
func printDays(i int) string {
switch i {
case 1:
return "[X]"
case 2:
return "[ ]"
default:
return " "
}
}
//struct.go
package main
import "time"
type Task struct {
Description string
Done time.Weekday
CreateDay time.Weekday
Week int
}
func (t *Task) NewTask(description string) {
day := time.Now()
t.Description = description
t.Done = -1
t.CreateDay = day.Weekday()
t.Week = day.YearDay() / 7
}
//main.go
package main
import "time"
func main() {
week := time.Now().YearDay()
tasks := []Task{
Task{
Description: "Test 123",
Done: time.Wednesday,
CreateDay: time.Monday,
Week: week,
},
Task{
Description: "Test 32",
Done: -1,
CreateDay: time.Monday,
Week: week,
},
Task{
Description: "Test 32",
Done: time.Tuesday,
CreateDay: time.Tuesday,
Week: week,
},
Task{
Description: "Test 32",
Done: time.Monday,
CreateDay: time.Sunday,
Week: week,
},
}
PrintTasks(tasks)
}