Files
IoTManager/include/Utils/TimeUtils.h

51 lines
1.2 KiB
C
Raw Normal View History

2020-06-20 14:27:58 +03:00
#pragma once
2020-06-27 01:21:58 +03:00
2020-06-26 01:38:29 +03:00
#include <Arduino.h>
2020-06-20 14:27:58 +03:00
2020-06-27 01:21:58 +03:00
#include "CommonTypes.h"
#define ONE_MINUTE_s 60
#define ONE_HOUR_m 60
#define ONE_HOUR_s 60 * ONE_MINUTE_s
#define LEAP_YEAR(Y) (((1970 + Y) > 0) && !((1970 + Y) % 4) && (((1970 + Y) % 100) || !((1970 + Y) % 400)))
#define MIN_DATETIME 1575158400
#define ONE_SECOND_ms 1000
2020-06-26 01:38:29 +03:00
2020-06-20 17:12:59 +03:00
/*
2020-06-27 01:21:58 +03:00
* Время (мс) прошедщее с @since
2020-06-20 17:12:59 +03:00
*/
2020-06-27 01:21:58 +03:00
unsigned long millis_since(unsigned long sinse);
2020-06-20 14:27:58 +03:00
2020-06-20 17:12:59 +03:00
/*
2020-06-27 01:21:58 +03:00
* Интерввал времени (мс) между @start и @finish
2020-06-20 17:12:59 +03:00
*/
2020-06-27 01:21:58 +03:00
unsigned long millis_passed(unsigned long start, unsigned long finish);
2020-06-20 14:27:58 +03:00
2020-06-20 22:51:14 +03:00
/*
2020-06-27 01:21:58 +03:00
* Форматиронное время интервала (мс)
* "чч:мм:cc",
* "дд чч:мм", если > 24 часов
2020-06-20 22:51:14 +03:00
*/
2020-06-20 14:27:58 +03:00
const String prettyMillis(unsigned long time_ms = millis());
2020-06-22 03:11:02 +03:00
2020-06-24 01:16:00 +03:00
/*
2020-06-27 01:21:58 +03:00
* Форматиронное время интервала (c)
* "чч:мм:cc",
* "дд чч:мм", если > 24 часов
2020-06-24 01:16:00 +03:00
*/
2020-06-27 01:21:58 +03:00
const String prettySeconds(unsigned long time_s);
2020-06-24 01:16:00 +03:00
/*
2020-06-27 01:21:58 +03:00
* Тайм зона в секундах
2020-06-24 01:16:00 +03:00
*/
2020-06-26 01:38:29 +03:00
int getOffsetInSeconds(int timezone);
2020-06-27 01:21:58 +03:00
/*
* Тайм зона в минутах
*/
2020-06-26 01:38:29 +03:00
int getOffsetInMinutes(int timezone);
2020-06-27 01:21:58 +03:00
/*
* Разбивает время на составляющие
*/
void breakEpochToTime(unsigned long epoch, Time_t& tm);