1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- package main
- import (
- //"fmt"
- "net/http"
- "bufio"
- "os"
- "github.com/zenazn/goji"
- "github.com/zenazn/goji/web"
- "time"
- "strings"
- "strconv"
- "github.com/flosch/pongo2"
- )
- type TimeData struct {
- Campany string
- Type int
- Hour int
- Minute int
- Start string
- End string
- }
- func hello(c web.C, w http.ResponseWriter, r *http.Request) {
- var fp *os.File
- var err error
- fp, err = os.Open("bus.csv")
- if err != nil {
- panic(err)
- }
- var time_datas []TimeData
- var times []TimeData
- defer fp.Close()
- scanner := bufio.NewScanner(fp)
- for scanner.Scan() {
- var row []string
- row = strings.Split(scanner.Text(), ",")
- time_data := TimeData{}
- time_data.Campany = row[0]
- time_data.Type, _ = strconv.Atoi(row[1])
- time_data.Hour, _ = strconv.Atoi(row[2])
- time_data.Minute, _ = strconv.Atoi(row[3])
- time_data.Start = row[4]
- time_data.End = row[5]
- time_datas = append(time_datas, time_data)
- }
- //var timeformat = "2006-01-02 15:04:06"
- //t,err := time.Parse(timeformat, "2016-02-10 7:30:00")
- t := time.Now()
- var now_hour = t.Hour()
- var now_min = t.Minute()
- var weekday = t.Weekday()
- for _, value := range time_datas {
- if ((now_hour < value.Hour) || (now_hour == value.Hour && now_min <= value.Minute)) {
- if ((value.Type == 1 && weekday != time.Saturday && weekday != time.Sunday) ||
- (value.Type == 2 && (weekday == time.Saturday || weekday == time.Sunday))) {
- //fmt.Fprintf(w, "Hello, %2d %2d! <br />", value.Hour, value.Minute)
- times = append(times, value)
- }
- }
- }
- if (0 == len(times)) {
- times = time_datas
- }
- if err := scanner.Err(); err != nil {
- panic(err)
- }
- tpl, err := pongo2.DefaultSet.FromFile("view/page.tpl")
- if err != nil {
- http.Error(w, err.Error(), http.StatusInternalServerError)
- return
- }
- tpl.ExecuteWriter(pongo2.Context{"times": times}, w)
- }
- func main() {
- goji.Get("/", hello)
- goji.Serve()
- }
|