You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
With the code below you can add the function to get the date from the rawTime
this is a test code and i have not tested it very well
NTPClient.h
/**
* @return Date formatted like `dd/mm/yyyy`
*/
String getFormattedDate() const;
NTPClient.cpp
String NTPClient::getFormattedDate() const {
unsigned long rawTime = this->getEpochTime();
// Define constants for seconds in a day, year, and leap year
#define SEC_IN_DAY 86400
#define SEC_IN_YEAR 31536000
#define SEC_IN_LEAP_YEAR 31622400
// Define an array for the number of days in each month
int days_in_month[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
// Initialize the date to January 1st, 1970
unsigned long years = 1970;
unsigned long months = 1;
unsigned long days = 1;
// Add the number of years elapsed since the epoch
while (rawTime >= SEC_IN_YEAR)
{
if ((years % 4 == 0 && years % 100 != 0) || (years % 400 == 0))
{
if (rawTime >= SEC_IN_LEAP_YEAR)
{
rawTime -= SEC_IN_LEAP_YEAR;
years++;
} else
{
break; // not enough seconds for a leap year
}
} else
{
rawTime -= SEC_IN_YEAR;
years++;
}
}
// Add the number of months elapsed in the current year
while (rawTime >= SEC_IN_DAY)
{
if (rawTime >= days_in_month[months - 1] * SEC_IN_DAY)
{
rawTime -= days_in_month[months - 1] * SEC_IN_DAY;
months++;
} else
{
break; // not enough seconds for a month
}
// Adjust for February in a leap year
if (months == 2 && ((years % 4 == 0 && years % 100 != 0) || (years % 400 == 0)))
{
rawTime -= SEC_IN_DAY;
}
// Adjust for year boundary
if (months >12) {
months = months -12;
years++;
}
}
// Add the number of days elapsed in the current month
while (rawTime >= SEC_IN_DAY) { rawTime -= SEC_IN_DAY; days++; }
// Convert the date components to strings with leading zeros if needed
String yearStr = String(years);
String monthStr = months <10 ? "0" + String(months) : String(months);
String dayStr = days <10 ? "0" + String(days) : String(days);
// Return the date in dd/mm/yyyy format
return dayStr + "/" + monthStr + "/" + yearStr;
}
The text was updated successfully, but these errors were encountered:
Thanks for your suggestion @Neoxxgr. In order to make it easy for the interested parties to find all the relevant information, I'll share the links to related proposals:
With the code below you can add the function to get the date from the rawTime
this is a test code and i have not tested it very well
NTPClient.h
NTPClient.cpp
The text was updated successfully, but these errors were encountered: