Heure.c 1.1 KB

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