From e1a8b31f006d861f8f704d407b890ce741225d4e Mon Sep 17 00:00:00 2001 From: Mark McGranaghan Date: Wed, 19 Sep 2012 07:39:43 -0700 Subject: [PATCH] various time --- README | 13 +------------ src/xx-tickers.go | 15 +++++++++++++++ src/xx-time.go | 18 ++++++++++++++++++ src/xx-timers.go | 20 ++++++++++++++++++++ 4 files changed, 54 insertions(+), 12 deletions(-) create mode 100644 src/xx-tickers.go create mode 100644 src/xx-time.go create mode 100644 src/xx-timers.go diff --git a/README b/README index ac22677..ea1ece8 100644 --- a/README +++ b/README @@ -33,18 +33,8 @@ gobyexample.com signups * updates forever * no drm -= source -* popular github libraries -* mailing list questions -* stack overflow questions -* handbook format -* rosetta stone -* building an actual fucking app -* ruby and nodejs stdlib -* ruby and nodejs killer apps - = topics -* time +* time formatting * connection pool * typed json parse/unparse * web app @@ -62,7 +52,6 @@ gobyexample.com signups * hipache port * ssh * dns -* timers * tty * iota * oauth for google domains diff --git a/src/xx-tickers.go b/src/xx-tickers.go new file mode 100644 index 0000000..f3d68bb --- /dev/null +++ b/src/xx-tickers.go @@ -0,0 +1,15 @@ +package main + +import ("time"; "fmt") + +func main() { + ticker := time.NewTicker(time.Millisecond * 500) + go func() { + for t := range ticker.C { + fmt.Println("Tick at", t) + } + }() + time.Sleep(time.Millisecond * 3000) + ticker.Stop() + fmt.Println("Ticker stopped") +} diff --git a/src/xx-time.go b/src/xx-time.go new file mode 100644 index 0000000..61cd88e --- /dev/null +++ b/src/xx-time.go @@ -0,0 +1,18 @@ +package main + +import ("time"; "fmt") + +func main() { + now := time.Now() + fmt.Println(now) + + then := time.Date(2009, 11, 17, 20, 34, 58, 651387237, time.UTC) + fmt.Println(then) + + diff := now.Sub(then) + fmt.Println(diff) + + // extract parts + // add duration + // check before / after +} diff --git a/src/xx-timers.go b/src/xx-timers.go new file mode 100644 index 0000000..d097ebc --- /dev/null +++ b/src/xx-timers.go @@ -0,0 +1,20 @@ +package main + +import ("time"; "fmt") + +func main() { + timer1 := time.NewTimer(time.Millisecond * 500) + <- timer1.C + fmt.Println("Timer 1 expired") + stopped1 := timer1.Stop() + fmt.Println("Timer 2 stopped:", stopped1) + + timer2 := time.NewTimer(time.Second) + go func() { + <- timer2.C + fmt.Println("Timer 2 expired") + }() + time.Sleep(time.Millisecond * 500) + stopped2 := timer2.Stop() + fmt.Println("Timer 2 stopped:", stopped2) +}