Calcule le décalage horaire en France (+1 en été, +2 en hiver) à partir d'une heure UTC et d'une date.
Fork of FrenchTime by
FrenchTime.h
- Committer:
- Marcus_2B
- Date:
- 2016-05-04
- Revision:
- 0:2ef6fb83757c
- Child:
- 1:23fcffaa257c
- Child:
- 3:3b689218225e
File content as of revision 0:2ef6fb83757c:
#ifndef MBED_FRENCH_TIME_H #define MBED_FRENCH_TIME_H #include "mbed.h" #define UTC_TIME_OFFSET 1 #define DAYS_IN_MARS 31 /** * Classe qui permet de calculer l'heure locale en France à partir de l'heure UTC provenant d'un GPS par exemple. * Le passage à l'heure d'été est réalisé le dernier dimanche de mars à minuit. * Le passage à l'heure d'hiver est réalisé le dernier dimanche d'octobre à minuit. */ class FrenchTime { public: /** Mois de l'année */ enum month {JANVIER = 1 /**<Le mois de Janvier = 1*/, FEVRIER /**< 2 */, MARS /**< 3 */, AVRIL /**< 4 */, MAI /**< 5 */, JUIN /**< 6 */, JUILLET /**< 7 */, AOUT /**< 8 */, SEPTEMBRE /**< 9 */, OCTOBRE /**< 10 */, NOVEMBRE /**< 11 */, DECEMBRE /**< 12 */ }; /** Jours de la semaine */ enum dayOfWeek {DIM = 0 /**<Dimanche = 0 */, LUN /**< 1 */, MAR /**< 2 */, MER /**< 3 */, JEU /**< 4 */, VEN /**< .5 */, SAM /**<Samedi = 6 */ }; /** * Methode qui revoie le décalage horaire de l'heure francaise par rapport à l'heure UTC * @param day date du jour * @param month mois * @param year année * @returns * uint8_t 1 (hiver) * uint8_t 2 (été) */ static uint8_t frenchTimeOffset(uint8_t day, uint8_t month, int year); /** * Methode qui renvoie la date du dernier dimanche d'un mois * @param month mois * @param year année * @return uin8_t jour du mois de 1 à 31 */ static uint8_t lastSundayOfMonth(uint8_t month, int year); /** * Methode qui renvoie le jour de la semaine correspondant à une date * @param day date du jour * @param month mois * @param year année * @return uin8_t jour de la semaine de 0(dimanche) à 6(samedi) */ static uint8_t dayOfWeek(uint8_t day, uint8_t month, int year); }; #endif