exercism-c/space-age/space_age.c
Blizzard Finnegan b92478b09c
Init commit
Leap, Difference of Squares, Grains, Collatz Conjecture, Queen Attack,
Darts, Hamming, and Space Age completed yesterday.

Binary and Linked List completed today.
2025-01-11 18:45:47 -05:00

46 lines
1.2 KiB
C

#include "space_age.h"
const float SEC_TO_EARTH_YEAR = 31557600.0f;
const float EARTH_TO_MERCURY = 0.2408467f;
const float EARTH_TO_VENUS = 0.61519726f;
const float EARTH_TO_EARTH = 1.0f;
const float EARTH_TO_MARS = 1.8808158f;
const float EARTH_TO_JUPITER = 11.862615f;
const float EARTH_TO_SATURN = 29.447498f;
const float EARTH_TO_URANUS = 84.016846f;
const float EARTH_TO_NEPTUNE = 164.79132f;
float age(planet_t planet, int64_t seconds){
float return_value;
float year = seconds / SEC_TO_EARTH_YEAR;
switch(planet){
case MERCURY:
return_value = year / EARTH_TO_MERCURY;
break;
case VENUS:
return_value = year / EARTH_TO_VENUS;
break;
case EARTH:
return_value = year / EARTH_TO_EARTH;
break;
case MARS:
return_value = year / EARTH_TO_MARS;
break;
case JUPITER:
return_value = year / EARTH_TO_JUPITER;
break;
case SATURN:
return_value = year / EARTH_TO_SATURN;
break;
case URANUS:
return_value = year / EARTH_TO_URANUS;
break;
case NEPTUNE:
return_value = year / EARTH_TO_NEPTUNE;
break;
default:
return_value = year;
}
return return_value;
}