Menentukan selisih tanggal menggunakan Arduino bisa memanfaatkan library TimeLib.h, namun metode ini hanya valid dari tahun 1970.
Selisih tanggal ini bisa dipergunakan untuk menentukan umur, hari ulang tahun, hitung mundur suatu kegiatan dan lain-lain.
Mengurang dua tanggal (datetime) pada arduino dengan TimeLib.h diperoleh dari pengurangan jumlah hari pada tanggal-tanggal tersebut terhitung dari 1 Januari 1970. Setelah operasi pengurangan dua tanggal tersebut, hasilnya diperoleh dalam bentuk jumlah hari (integer) untuk selanjutnya dikonversi menjadi hari, bulan dan tahun.
Berikut kode program selisih tanggal dengan arduino:
#include <TimeLib.h> void setup() { Serial.begin(9600); Serial.println("Selisih dari dua tanggal menggunakan Arduino"); Serial.println("https://www.project.semesin.com/"); Serial.println(); } void loop() { //dtk,mnt,jam,hari,tgl,bln,tahun tmElements_t tanggalPertama = {0,0,0,0,5,9,CalendarYrToTm(1985)};//valid diatas 1970 tmElements_t tanggalKedua = {0,0,0,0,21,4,CalendarYrToTm(2018)};//valid diatas 1970 tmElements_t selisih; breakTime(makeTime(tanggalKedua) - makeTime(tanggalPertama), selisih); Serial.print("Tanggal pertama = "); Serial.print(tanggalPertama.Day); Serial.print("/"); Serial.print(tanggalPertama.Month); Serial.print("/"); Serial.println(tmYearToCalendar(tanggalPertama.Year)); Serial.print("Tanggal kedua = "); Serial.print(tanggalKedua.Day); Serial.print("/"); Serial.print(tanggalKedua.Month); Serial.print("/"); Serial.println(tmYearToCalendar(tanggalKedua.Year)); Serial.print("Selisih = "); Serial.print(selisih.Day); Serial.print(" hari "); Serial.print(selisih.Month); Serial.print(" bulan "); Serial.print(selisih.Year); Serial.println(" tahun"); while(1); } void print2digits(int number) { if (number >= 0 && number < 10) { Serial.write('0'); } Serial.print(number); }
hasil serial monitor pengurangan tanggal dengan arduino: