เปรียบเทียบสองวันที่

Arduino:
เปรียบเทียบสองวันที่

วิธีการ:

ใน Arduino, คุณสามารถเปรียบเทียบวันที่โดยใช้ไลบรารี TimeLib.h ติดตั้งมันก่อน จากนั้นลองดูโค้ดตัวอย่างนี้:

#include <TimeLib.h>

void setup() {
  Serial.begin(9600);
  // ตั้งค่าเวลาที่แตกต่างกันสองครั้ง (ปี, เดือน, วัน, ชั่วโมง, นาที, วินาที)
  // ที่นี่เรากำลังตั้งค่า 3 มีนาคม 2023, 8:30:00 และ 4 มีนาคม 2023, 16:45:00
  time_t firstTime = makeTime({0, 30, 8, 3, 3, 2023});
  time_t secondTime = makeTime({0, 45, 16, 4, 3, 2023});
  
  // เปรียบเทียบเวลาทั้งสอง
  if (firstTime < secondTime) {
    Serial.print("เวลาแรกอยู่ก่อน.");
  } else if (firstTime > secondTime) {
    Serial.print("เวลาที่สองอยู่ก่อน.");
  } else {
    Serial.print("ทั้งสองเวลาเท่ากัน.");
  }
}

void loop() {
  // ไม่มีอะไรที่นี่
}

ตัวอย่างผลลัพธ์:

เวลาแรกอยู่ก่อน.

ลงลึก

Arduino ไม่มีการสนับสนุนฟังก์ชันในการจัดการวันและเวลาโดยตรง ดังนั้นเราจึงใช้ไลบรารีเช่น TimeLib.h ก่อนมีไลบรารี ผู้คนต้องคำนวณและเปรียบเทียบวันที่ด้วยตนเอง—ซึ่งเป็นงานที่ยุ่งยากเนื่องจากปีอธิกสุรทิน ความยาวของเดือนที่แตกต่างกัน และอื่นๆ

วิธีอื่นในการจัดการวันที่รวมถึงโมดูล RTC (Real Time Clock) เช่น DS3231 ซึ่งรักษาเวลาไว้แม้ว่า Arduino จะปิดอยู่ สำหรับการเปรียบเทียบ คุณยังคงต้องดึงวันที่เข้ามาในโปรแกรมของคุณและเปรียบเทียบเหมือนที่เราทำข้างต้น

เมื่อนำไปใช้ ต้องคำนึงถึงเขตเวลาและการปรับเวลาตามฤดูกาลหากจำเป็น TimeLib สามารถจัดการเวลา UTC ซึ่งหลีกเลี่ยงปัญหาเหล่านี้ได้ แต่เวลาท้องถิ่นต้องการความระมัดระวังเพิ่มเติม

ดูเพิ่มเติม