Skip to content

Instantly share code, notes, and snippets.

@santiaago
Last active November 23, 2022 18:43
Show Gist options
  • Save santiaago/9027077 to your computer and use it in GitHub Desktop.
Save santiaago/9027077 to your computer and use it in GitHub Desktop.
Sorting an array of dates in Go
package main
import "fmt"
import "time"
import "sort"
func main() {
fmt.Println("Sorting an array of time")
const shortForm = "Jan/02/2006"
t1, _ := time.Parse(shortForm, "Feb/02/2014")
t2, _ := time.Parse(shortForm, "Feb/02/1800")
t3, _ := time.Parse(shortForm, "Feb/02/1999")
t4, _ := time.Parse(shortForm, "Feb/02/2000")
dates := []time.Time{t1, t2, t3, t4}
for _, t := range dates {
fmt.Println(t)
}
sort.Sort(ByDate(dates))
fmt.Println("sorted:")
for _, t := range dates {
fmt.Println(t)
}
}
type ByDate []time.Time
func (a ByDate) Len() int { return len(a) }
func (a ByDate) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
func (a ByDate) Less(i, j int) bool { return a[i].Before(a[j]) }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment