package main
import "fmt"
import "time"
import "sort"
// Define us a type so we can sort it
type TimeSlice
[]time.
Time
func main() {
events
:= make
([]time.
Time, 2) // Create slice of two times events
[0], _
= time.
Parse("15:04", "04:30") // 4:30AM events
[1], _
= time.
Parse("15:04", "15:12") // 3:12PM sort.Sort(TimeSlice(events)) // Wrap array in type for sorting
fmt.Println(events)
}
// Forward request for length
func (p TimeSlice) Len() int {
return len(p) }
// Define compare
func (p TimeSlice) Less(i, j int) bool {
return p[i].Before(p[j]) }
// Define swap over an array
func (p TimeSlice) Swap(i, j int) {
p[i], p[j] = p[j], p[i] }
cGFja2FnZSBtYWluCgppbXBvcnQgImZtdCIKaW1wb3J0ICJ0aW1lIgppbXBvcnQgInNvcnQiCgovLyBEZWZpbmUgdXMgYSB0eXBlIHNvIHdlIGNhbiBzb3J0IGl0CnR5cGUgVGltZVNsaWNlIFtddGltZS5UaW1lCgpmdW5jIG1haW4oKSB7CiAgICBldmVudHMgOj0gbWFrZShbXXRpbWUuVGltZSwgMikgLy8gQ3JlYXRlIHNsaWNlIG9mIHR3byB0aW1lcwogICAgZXZlbnRzWzBdLCBfID0gdGltZS5QYXJzZSgiMTU6MDQiLCAiMDQ6MzAiKSAvLyA0OjMwQU0KICAgIGV2ZW50c1sxXSwgXyA9IHRpbWUuUGFyc2UoIjE1OjA0IiwgIjE1OjEyIikgLy8gMzoxMlBNCiAgICBzb3J0LlNvcnQoVGltZVNsaWNlKGV2ZW50cykpIC8vIFdyYXAgYXJyYXkgaW4gdHlwZSBmb3Igc29ydGluZwogICAgCiAgICBmbXQuUHJpbnRsbihldmVudHMpCn0KCi8vIEZvcndhcmQgcmVxdWVzdCBmb3IgbGVuZ3RoCmZ1bmMgKHAgVGltZVNsaWNlKSBMZW4oKSBpbnQgewogICAgcmV0dXJuIGxlbihwKSB9CgovLyBEZWZpbmUgY29tcGFyZQpmdW5jIChwIFRpbWVTbGljZSkgTGVzcyhpLCBqIGludCkgYm9vbCB7CiAgICByZXR1cm4gcFtpXS5CZWZvcmUocFtqXSkgfQoKLy8gRGVmaW5lIHN3YXAgb3ZlciBhbiBhcnJheQpmdW5jIChwIFRpbWVTbGljZSkgU3dhcChpLCBqIGludCkgewogICAgcFtpXSwgcFtqXSA9IHBbal0sIHBbaV0gfQ==