#ifndef UNIT_CONVERTOR_H
#define UNIT_CONVERTOR_H

#include <string>

/*******************************
* Distance units and conversion
********************************/

const unsigned long long LIGHT_SECOND_IN_METERS	= 299792458;
const unsigned long long LIGHT_MINUTE_IN_METERS	= 17987547480;
const unsigned long long LIGHT_HOUR_IN_METERS	= 1079252848800;
const unsigned long long LIGHT_DAY_IN_METERS	= 25902068371200;
const unsigned long long LIGHT_MONTH_IN_METERS	= 777062051136000;
const unsigned long long LIGHT_YEAR_IN_METERS	= 9460730472580800;
const unsigned long long KILOMETER_IN_METERS	= 1000;

const long double LIGHT_SECOND_IN_KM	= LIGHT_SECOND_IN_METERS / 1000;
const long double LIGHT_MINUTE_IN_KM	= LIGHT_MINUTE_IN_METERS / 1000;
const long double LIGHT_HOUR_IN_KM		= LIGHT_HOUR_IN_METERS / 1000;
const long double LIGHT_DAY_IN_KM		= LIGHT_DAY_IN_METERS / 1000;
const long double LIGHT_MONTH_IN_KM		= LIGHT_MONTH_IN_METERS / 1000;
const long double LIGHT_YEAR_IN_KM		= LIGHT_YEAR_IN_METERS / 1000;

std::wstring formatDistance(const unsigned long long kilometers, int orders);

/*******************************
* Speed units and conversion
********************************/

const unsigned long HOUR_IN_SECONDS		= 3600;
const unsigned long MINUTE_IN_SECONDS	= 60;

std::wstring formatTime(const unsigned long long seconds);
std::wstring formatSpeed(const unsigned long long metersPerSecond);
std::wstring formatAccelerance(const unsigned long long metersPerSecondSquared);

#endif