חישוב תאריך בעתיד או בעבר

Arduino:
חישוב תאריך בעתיד או בעבר

איך לעשות:

#include <TimeLib.h> // ספרייה לחישובי זמן

void setup() {
  setTime(10, 30, 0, 1, 1, 2023); // הגדרת זמן תחילתי: 01/01/2023, 10:30:00
  Serial.begin(9600);
  printFutureDate(30); // הדפסת תאריך לאחר 30 ימים
}

void loop() {
  // בדוגמא זו, הלולאה הראשית ריקה.
}

void printFutureDate(int daysInFuture) {
  time_t future = now() + daysInFuture * SECS_PER_DAY; // חישוב הזמן בעתיד
  Serial.print(day(future));    // יום
  Serial.print("/");            // מפריד בין יום לחודש
  Serial.print(month(future));  // חודש
  Serial.print("/");            // מפריד בין חודש לשנה
  Serial.println(year(future)); // שנה
}

תוצאה לדוגמא: 31/1/2023

צלילה לעומק

לחישוב תאריך בעבר, היו תכנתים בעבר כותבים אלגוריתם מורכב. היום, ספריות כמו TimeLib מקלות על המשימה ב-Arduino. יש אלטרנטיבות אחרות, כגון RTC (Real-Time Clock) מבוססי חומרה לדיוק גבוה יותר. פרטי המימוש כוללים טיפול בעקביות חישוב הזמן, קפיצות שנה וזיהוי חודשים ושנים מעוברות.

ראו גם