diff options
author | Michael F. Schönitzer <michael@schoenitzer.de> | 2020-10-05 13:52:58 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-05 13:52:58 +0200 |
commit | d93cac12be1a7a580e338c6fa80286bfa703ffc6 (patch) | |
tree | 93d613adc2f698b8bb03c799072c3d4ee8330250 /DateMeter.c | |
parent | ffd90c28ab55a2cdbbd5c3b8130e0462a24af8a8 (diff) |
Add a date and datetime meter (#159)
Add a date meter and sort header and source files in Makefile
Change the lists of header and source files sorted alphabetical and one
file per line. This way diffs become better readable and merges easier.
Diffstat (limited to 'DateMeter.c')
-rw-r--r-- | DateMeter.c | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/DateMeter.c b/DateMeter.c new file mode 100644 index 00000000..6fd93373 --- /dev/null +++ b/DateMeter.c @@ -0,0 +1,47 @@ +/* +htop - DateMeter.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 "DateMeter.h" + +#include "CRT.h" + +#include <time.h> + + +int DateMeter_attributes[] = { + DATE +}; + +static void DateMeter_updateValues(Meter* this, char* buffer, int size) { + time_t t = time(NULL); + struct tm result; + struct tm *lt = localtime_r(&t, &result); + this->values[0] = lt->tm_yday; + int year = lt->tm_year + 1900; + if (((year % 4 == 0) && (year % 100!= 0)) || (year%400 == 0)) { + this->total = 366; + } + else { + this->total = 365; + } + strftime(buffer, size, "%F", lt); +} + +MeterClass DateMeter_class = { + .super = { + .extends = Class(Meter), + .delete = Meter_delete + }, + .updateValues = DateMeter_updateValues, + .defaultMode = TEXT_METERMODE, + .maxItems = 1, + .total = 365, + .attributes = DateMeter_attributes, + .name = "Date", + .uiName = "Date", + .caption = "Date: ", +}; |