Skip to content
Snippets Groups Projects
Commit ada3ad75 authored by Uwe Schulzweida's avatar Uwe Schulzweida
Browse files

Added function secofday_encode() and secofday_decode().

parent 3846ba47
No related branches found
No related tags found
No related merge requests found
Pipeline #18345 failed
#include "julian_date.h"
#include <math.h>
double
secofday_encode(CdiTime time)
{
const int hour = time.hour;
const int minute = time.minute;
const int second = time.second;
return hour * 3600 + minute * 60 + second + time.ms / 1000.0;
}
CdiTime
secofday_decode(double secondOfDay)
{
CdiTime time;
const int fullSeconds = (int) secondOfDay;
time.ms = (int) lround((secondOfDay - fullSeconds) * 1000);
const int hour = fullSeconds / 3600;
const int minute = fullSeconds / 60 - hour * 60;
const int second = fullSeconds - hour * 3600 - minute * 60;
time.hour = hour;
time.minute = minute;
time.second = second;
return time;
}
JulianDate
julianDate_encode(int calendar, CdiDateTime dt)
......@@ -10,7 +40,18 @@ julianDate_encode(int calendar, CdiDateTime dt)
return julianDate;
}
/*
CdiDateTime
julianDate_decode(int calendar, JulianDate julianDate)
{
CdiDateTime dt;
decode_calday(calendar, julianDate.julianDay, &dt.date.year, &dt.date.month, &dt.date.day);
decode_secofday(julianDate.secondOfDay, &dt.time.hour, &dt.time.minute, &dt.time.second, &dt.time.ms);
return dt;
}
*/
static void
adjust_seconds(JulianDate *julianDate)
{
......
......@@ -17,9 +17,13 @@ typedef struct
} JulianDate;
JulianDate julianDate_encode(int calendar, CdiDateTime dt);
CdiDateTime julianDate_decode(int calendar, JulianDate julianDate);
JulianDate julianDate_add(JulianDate julianDate1, JulianDate julianDate2);
JulianDate julianDate_sub(JulianDate julianDate1, JulianDate julianDate2);
double secofday_encode(CdiTime time);
CdiTime secofday_decode(double secondOfDay);
#ifdef __cplusplus
}
#endif
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment