summaryrefslogtreecommitdiff
path: root/go/space-age/space_age.go
blob: a03faef48369e835961ca56494d362b5191e9e08 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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
}