summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2018-09-22 15:19:00 +0200
committerDimitri Sokolyuk <demon@dim13.org>2018-09-22 15:19:00 +0200
commitdea0ce8b414f72b60d3b7d0a9c8ac72296e8705d (patch)
tree4f080e401e0bab8ca7f5ee4123659fb7da6f4f8f
parent53eefb5643c87888ddda629fd4f848ad7681662e (diff)
solve space-age
-rw-r--r--go/space-age/space_age.go27
1 files changed, 27 insertions, 0 deletions
diff --git a/go/space-age/space_age.go b/go/space-age/space_age.go
new file mode 100644
index 0000000..a03faef
--- /dev/null
+++ b/go/space-age/space_age.go
@@ -0,0 +1,27 @@
+package space
+
+// Planet name
+type Planet string
+
+// seconds in Earth year
+const year = 31557600
+
+// scale year duration compared to Earth
+var scale = map[Planet]float64{
+ "Earth": 1.0,
+ "Mercury": 0.2408467,
+ "Venus": 0.61519726,
+ "Mars": 1.8808158,
+ "Jupiter": 11.862615,
+ "Saturn": 29.447498,
+ "Uranus": 84.016846,
+ "Neptune": 164.79132,
+}
+
+func Age(seconds float64, p Planet) float64 {
+ factor, ok := scale[p]
+ if !ok {
+ return 0.0
+ }
+ return seconds / year / factor
+}