Heure.c 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. /*
  2. * Heure.c
  3. *
  4. * Created on: 14 mai 2019
  5. * Author: e_rcluze
  6. */
  7. #include "RTC.h"
  8. int8_t CompareHeure(Heure h1, Heure h2) {
  9. if (h1.heure == h2.heure) {
  10. if (h1.minute == h2.minute)
  11. return 0;
  12. else if (h1.minute < h2.minute)
  13. return -1;
  14. else
  15. return 1;
  16. } else if (h1.heure < h2.heure)
  17. return -1;
  18. else
  19. return 1;
  20. }
  21. void HeureAjout(Heure res, Heure h1, uint8_t Pente) {
  22. uint8_t minute = h1.minute + Pente;
  23. res.heure = h1.heure + minute / 60;
  24. res.minute = minute % 60;
  25. }
  26. void HeureSuppr(Heure res, Heure h1, uint8_t Pente) {
  27. int8_t minute = h1.minute - Pente;
  28. if (minute < 0) {
  29. res.heure = h1.heure - 1;
  30. res.minute = minute + 60;
  31. } else {
  32. res.heure = h1.heure;
  33. res.minute = minute;
  34. }
  35. }
  36. int16_t DiffHeure(Heure h1, Heure h2) {
  37. return ((h1.heure - h2.heure) * 60) + (h1.minute - h2.minute);
  38. }
  39. int32_t DiffDate(Date h1, Date h2) {
  40. int32_t min = h1.minute - h2.minute;
  41. int32_t heure = (h1.heure - h2.heure) * 60;
  42. int32_t jour = (h1.jour - h2.jour) * 24 * 60;
  43. int32_t annee = (h1.annee - h2.annee) * 24 * 60 * 365;
  44. return min + heure + jour + annee;
  45. }