mirror of
https://github.com/Ed94/metadesk.git
synced 2026-06-13 07:52:22 -07:00
71 lines
1.1 KiB
C
71 lines
1.1 KiB
C
#ifdef INTELLISENSE_DIRECTIVES
|
|
# pragma once
|
|
# include "base_types.h"
|
|
#endif
|
|
|
|
////////////////////////////////
|
|
//~ allen: Time
|
|
|
|
typedef enum WeekDay
|
|
{
|
|
WeekDay_Sun,
|
|
WeekDay_Mon,
|
|
WeekDay_Tue,
|
|
WeekDay_Wed,
|
|
WeekDay_Thu,
|
|
WeekDay_Fri,
|
|
WeekDay_Sat,
|
|
WeekDay_COUNT,
|
|
}
|
|
WeekDay;
|
|
|
|
typedef enum Month
|
|
{
|
|
Month_Jan,
|
|
Month_Feb,
|
|
Month_Mar,
|
|
Month_Apr,
|
|
Month_May,
|
|
Month_Jun,
|
|
Month_Jul,
|
|
Month_Aug,
|
|
Month_Sep,
|
|
Month_Oct,
|
|
Month_Nov,
|
|
Month_Dec,
|
|
Month_COUNT,
|
|
}
|
|
Month;
|
|
|
|
typedef struct DateTime DateTime;
|
|
struct DateTime
|
|
{
|
|
U16 micro_sec; // [0,999]
|
|
U16 msec; // [0,999]
|
|
U16 sec; // [0,60]
|
|
U16 min; // [0,59]
|
|
U16 hour; // [0,24]
|
|
U16 day; // [0,30]
|
|
union
|
|
{
|
|
WeekDay week_day;
|
|
U32 wday;
|
|
};
|
|
union
|
|
{
|
|
Month month;
|
|
U32 mon;
|
|
};
|
|
U32 year; // 1 = 1 CE, 0 = 1 BC
|
|
};
|
|
|
|
typedef U64 DenseTime;
|
|
|
|
////////////////////////////////
|
|
//~ rjf: Time Functions
|
|
|
|
internal DenseTime dense_time_from_date_time(DateTime date_time);
|
|
internal DateTime date_time_from_dense_time(DenseTime time);
|
|
internal DateTime date_time_from_micro_seconds(U64 time);
|
|
internal DateTime date_time_from_unix_time(U64 unix_time);
|