From 509c5063d66e8bbef4ec1def1c99c318be51aceb Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Thu, 25 Aug 2016 03:13:39 +0200 Subject: Initial import --- go/clock/clock.go | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 go/clock/clock.go (limited to 'go/clock/clock.go') diff --git a/go/clock/clock.go b/go/clock/clock.go new file mode 100644 index 0000000..036a69b --- /dev/null +++ b/go/clock/clock.go @@ -0,0 +1,29 @@ +package clock + +import "fmt" + +const testVersion = 4 + +type Clock struct { + hour, minute int +} + +func New(hour, minute int) Clock { + for minute < 0 { + minute += 60 + hour -= 1 + } + hour += minute / 60 + for hour < 0 { + hour += 24 + } + return Clock{hour % 24, minute % 60} +} + +func (c Clock) String() string { + return fmt.Sprintf("%02d:%02d", c.hour, c.minute) +} + +func (c Clock) Add(minutes int) Clock { + return New(c.hour, c.minute+minutes) +} -- cgit v1.2.3