Heure.c 1.0 KB

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