Bluenet  5.7.0
Bluenet, firmware for nRF52 smart home devices
Loading...
Searching...
No Matches
cs_Time.h
Go to the documentation of this file.
1
8#pragma once
9
10#include <stdint.h>
11#include <time/cs_DayOfWeek.h>
12#include <time/cs_TimeOfDay.h>
13
14class Time {
15private:
17
18public:
19 Time(uint32_t posixTime) : posixTimeStamp(posixTime) {}
20
21 Time(DayOfWeek day, uint8_t hours, uint8_t minutes, uint8_t seconds = 0)
22 : Time(dayNumber(day + (7 - 4)) * 24 * 60 * 60 + hours * 60 * 60 + minutes * 60 + seconds) {
23 // add (7-4) days because epoch is on a thursday in order to get
24 // dayNumber(thursday + (7-4)) == 0
25 }
26
27 uint32_t timestamp() { return posixTimeStamp; }
28
29 bool isValid() { return posixTimeStamp != 0; }
30
35 DayOfWeek dayOfWeek() { return DayOfWeek(1 << ((posixTimeStamp / (60 * 60 * 24) + 4) % 7)); }
36
38};
Author: Crownstone Team Copyright: Crownstone (https://crownstone.rocks) Date: Sep 24,...
Definition: cs_TimeOfDay.h:19
Author: Crownstone Team Copyright: Crownstone (https://crownstone.rocks) Date: Sep 24,...
Definition: cs_Time.h:14
DayOfWeek dayOfWeek()
See: http://stackoverflow.com/questions/36357013/day-of-week-from-seconds-since-epoch With timestamp=...
Definition: cs_Time.h:35
TimeOfDay timeOfDay()
Definition: cs_Time.h:37
bool isValid()
Definition: cs_Time.h:29
uint32_t posixTimeStamp
Definition: cs_Time.h:16
Time(uint32_t posixTime)
Definition: cs_Time.h:19
uint32_t timestamp()
Definition: cs_Time.h:27
Time(DayOfWeek day, uint8_t hours, uint8_t minutes, uint8_t seconds=0)
Definition: cs_Time.h:21
uint8_t dayNumber(DayOfWeek day)
Definition: cs_DayOfWeek.h:25
DayOfWeek
Author: Crownstone Team Copyright: Crownstone (https://crownstone.rocks) Date: Sep 24,...
Definition: cs_DayOfWeek.h:13