48 lines
687 B
Go
48 lines
687 B
Go
package main
|
|||
|
|
|
||
|
|
import (
|
||
|
|
"fmt"
|
||
|
|
"time"
|
||
|
|
)
|
||
|
|
|
||
|
|
const (
|
||
|
|
title = "TOP TEN ZIP CODES BY HIGHEST CURRENT TEMPERATURE"
|
||
|
|
)
|
||
|
|
|
||
|
|
func display(ztchan chan []*ZipTemp, done chan struct{}) {
|
||
|
|
for {
|
||
|
|
locations, more := <-ztchan
|
||
|
|
if !more {
|
||
|
|
done <- struct{}{}
|
||
|
|
return
|
||
|
|
}
|
||
|
|
|
||
|
|
// Clear the screen.
|
||
|
|
print("\033[H\033[2J")
|
||
|
|
|
||
|
|
// Print the title and top ten.
|
||
|
|
fmt.Println(title)
|
||
|
|
fmt.Printf(
|
||
|
|
"Last update: %s.\n\n",
|
||
|
|
time.Now().Format(time.RFC1123),
|
||
|
|
)
|
||
|
|
|
||
|
|
for i, zt := range locations {
|
||
|
|
if zt == nil {
|
||
|
|
fmt.Printf("%d. No data\n", i+1)
|
||
|
|
|
||
|
|
continue
|
||
|
|
}
|
||
|
|
|
||
|
|
fmt.Printf(
|
||
|
|
"%d. %.02f°F %s (%s, %s)\n",
|
||
|
|
i+1,
|
||
|
|
zt.Temperature,
|
||
|
|
zt.ZipCode,
|
||
|
|
zt.City,
|
||
|
|
zt.State,
|
||
|
|
)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|