From 65357c8c46154de4e4eca14075bfe5523bb5fc14 Mon Sep 17 00:00:00 2001 From: Daniel Lange Date: Mon, 7 Dec 2020 10:26:01 +0100 Subject: New upstream version 3.0.3 --- DateTimeMeter.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 DateTimeMeter.c (limited to 'DateTimeMeter.c') diff --git a/DateTimeMeter.c b/DateTimeMeter.c new file mode 100644 index 0000000..0d231cd --- /dev/null +++ b/DateTimeMeter.c @@ -0,0 +1,50 @@ +/* +htop - DateTimeMeter.c +(C) 2004-2020 Hisham H. Muhammad, Michael Schönitzer +Released under the GNU GPL, see the COPYING file +in the source distribution for its full text. +*/ + +#include "config.h" // IWYU pragma: keep + +#include "DateTimeMeter.h" + +#include + +#include "CRT.h" +#include "Object.h" + + +static const int DateTimeMeter_attributes[] = { + DATETIME +}; + +static void DateTimeMeter_updateValues(Meter* this, char* buffer, size_t size) { + time_t t = time(NULL); + struct tm result; + struct tm* lt = localtime_r(&t, &result); + int year = lt->tm_year + 1900; + if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) { + this->total = 366; + } + else { + this->total = 365; + } + this->values[0] = lt->tm_yday; + strftime(buffer, size, "%F %H:%M:%S", lt); +} + +const MeterClass DateTimeMeter_class = { + .super = { + .extends = Class(Meter), + .delete = Meter_delete + }, + .updateValues = DateTimeMeter_updateValues, + .defaultMode = TEXT_METERMODE, + .maxItems = 1, + .total = 365, + .attributes = DateTimeMeter_attributes, + .name = "DateTime", + .uiName = "Date and Time", + .caption = "Date & Time: ", +}; -- cgit v1.2.3