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 ซึ่งหลีกเลี่ยงปัญหาเหล่านี้ได้ แต่เวลาท้องถิ่นต้องการความระมัดระวังเพิ่มเติม
ดูเพิ่มเติม
- เอกสารประกอบไลบรารี TimeLib - รายละเอียดเกี่ยวกับการใช้ไลบรารี Time.
- ไลบรารีเวลาของ Arduino - ที่เก็บ GitHub สำหรับไลบรารีเวลา.