# Translating time units in KSP

In Kerbal Space Program, not all time units are equivalent to their real-world counterparts. Seconds, minutes, and hours seem to be roughly the same but there seems to be some breakdown after that. The hours counter appears to reset, and the days counter is incremented, after only 6 hours and I haven't quite figured out how long a year is yet.

I've reviewed the chart in the Time entry on KSP Wiki but its numbers and their meaning are are not really clear to me. (Screenshot below for reference and posterity)

I'm having a hard time understanding what the base unit of measure or reference in that chart is meant to be, which would then allow me to realize how each of the values in the chart are meant to relate to one another. There is also one time unit (Month) that I'm not sure I've seen used in-game, so I'm wondering if that's even really a relevant metric or just a colloquialism created by players to bring the Kerbin time system's structure more into alignment with real world systems.

So, my questions are these:

1. What are the base units used in the chart, and what do the numbers in each column actually mean?
2. How do Kerbin time units relate to one another?
• Kerbin seconds per Kerbin minute
• Kerbin minutes per Kerbin hour
• Kerbin hours per Kerbin day
• Kerbin days per Kerbin week (if "week" is at all defined)
• Kerbin days per Kerbin month
• Kerbin days per Kerbin year
3. Are there any Kerbin time units other than seconds, minutes, hours, days, and years, which are actually used and defined in-game? Or are things like weeks and months simply community-derived values?

There are:

``````60 Kerbin seconds per Kerbin minute
60 Kerbin minutes per Kerbin hour
6 Kerbin hours per Kerbin day
6.43 Kerbin days per Kerbin month
426.08 Kerbin days per Kerbin year
``````

A Kerbin month is defined as the time it takes for the Mun to make one orbit around Kerbin, and a Kerbin year is defined as the time it takes for Kerbin to make one orbit around Kerbol. A Kerbin second is equivalent to an Earth second. Week does not appear to be defined anywhere.

As to the chart, it's fairly self-explanatory, as up until you pass "hours", Kerbin units and Earth units are equivalent. The first section gives absolute orbital time, and the second section gives orbital time relative to Kerbin's values. For example, on Moho, the "Revolutions per Kerbin Year" is 4.15. This means that in the time it takes for Kerbin to complete one orbit of Kerbol, Moho will have completed 4.15 orbits of Kerbol.

• Thanks. Could you also address the question of whether month is actually used and/or defined in-game or just a community-defined value based on Mun's orbit? You also haven't really addressed how the chart should be translated but this should give me a good start.
– Iszi
Nov 6, 2014 at 17:23
• I have not seen month defined in-game anywhere. I believe it's just assumed by the community that the closest moon should be used for the month. Nov 6, 2014 at 17:29
• Is that a sidereal month or synodic month? Nov 7, 2014 at 2:39
• @MBraedley Sidereal. Nov 10, 2014 at 16:11

I have test this bash script up to 100 years on the ingame mission timer and it seems to work. No leap days encountered, and it seems based on "UT" seconds in the savegame file that a year is precisely 426*6*60*60 seconds.

``````#!/bin/bash
# Usage: \$0 seconds
# Returns UT elapsed seconds as data/time as seen in the ingame mission clock.
# Fractional seconds are shown, but not shown in the game clock.

UT=`echo \$1 | cut -f1 -d'.'`
frac=`echo \$1 | cut -f2 -d'.'`

SEC=1
MIN=\$(( 60 ))
HOUR=\$(( \$MIN * 60 ))
DAY=\$(( \$HOUR * 6 ))
YEAR=\$(( \$DAY * 426 ))

year=\$(( UT / \$YEAR ))
year=\$(( year + 1 ))

day=\$(( UT / \$DAY ))
day=\$(( \$day % 426 ))
day=\$(( \$day + 1 ))
day=`echo \$day | awk '{printf "%02d", \$1}'`

hour=\$(( UT / \$HOUR ))
hour=\$(( hour % 6 ))
hour=`echo \$hour | awk '{printf "%02d", \$1}'`

min=\$(( UT / \$MIN ))
min=\$(( \$min % 60 ))
min=`echo \$min | awk '{printf "%02d", \$1}'`

sec=\$(( UT % 60 ))
sec=`echo \$sec | awk '{printf "%02d", \$1}'`

echo "Y\${year},D\${day},\${hour}:\${min}:\${sec}.\${frac}"
``````
• Nice work, that's awesome. Jul 1, 2016 at 16:55