X-Git-Url: https://www.flypig.org.uk/git/?p=libcontrac.git;a=blobdiff_plain;f=src%2Futils.c;fp=src%2Futils.c;h=443f2a2a6a68f6cb032d92912c8250133f6a2b53;hp=1fbb7164049907123e3a3b4c875547accf8aff0f;hb=37e2b9b3573a05390190a25052ceb23d8dab0132;hpb=539021c1245ef6d23eaa5a7869c2ecebb1b9551e diff --git a/src/utils.c b/src/utils.c index 1fbb716..443f2a2 100644 --- a/src/utils.c +++ b/src/utils.c @@ -66,4 +66,32 @@ void base64_decode_base64_to_binary(unsigned char const *input, size_t input_siz EVP_DecodeBlock(output, input, size_in); } +uint32_t epoch_to_day_number(time_t epoch) { + uint32_t day_number; + + // DayNumber <- (Number of Seconds since Epoch) / 60 × 60 × 24 + day_number = epoch / (60 * 60 * 24); + + return day_number; +} + +uint8_t epoch_to_time_interval_number(time_t epoch) { + uint8_t time_interval_number; + uint32_t day_number; + uint32_t seconds; + + // TimeNumberInterval <- (Seconds Since Start of DayNumber) / 60 × 10 + day_number = epoch_to_day_number(epoch); + seconds = epoch - (day_number * (60 * 60 * 24)); + + time_interval_number = seconds / (60 * 10); + + // Falls in interval [0,143] + if (time_interval_number > 143) { + time_interval_number = 143; + } + + return time_interval_number; +} +