// date package models type Date struct { Week int Day int Hour int Minute int } func DayName(day int) string { switch day { case 0: return "Montag" case 1: return "Dienstag" case 2: return "Mittwoch" case 3: return "Donnerstag" case 4: return "Freitag" default: return "" } } func DateLess(first Date, second Date) bool { if first.Day < second.Day { return true } else if first.Day > second.Day { return false } if first.Hour < second.Hour { return true } else if first.Hour > second.Hour { return false } if first.Minute < second.Minute { return true } else if first.Minute > second.Minute { return false } return false } func GetEndDate(date Date, duration int, ignoreWeek bool) Date { var endDate Date if ignoreWeek { endDate = Date{0, date.Day, date.Hour, date.Minute} // deep copy } else { endDate = Date{date.Week, date.Day, date.Hour, date.Minute} } endDate.Hour = endDate.Hour + (endDate.Minute+duration)/60 endDate.Minute = (endDate.Minute + duration) % 60 return endDate }