Files
fastfetch/src/modules/datetime.c
T

48 lines
2.1 KiB
C
Raw Normal View History

2022-02-25 13:30:37 +01:00
#include "fastfetch.h"
#include "common/printing.h"
2022-02-25 13:30:37 +01:00
2022-02-25 15:06:24 +01:00
#define FF_DATETIME_MODULE_NAME "Date & Time"
2022-02-25 13:30:37 +01:00
#define FF_DATETIME_NUM_FORMAT_ARGS 20
2022-06-17 18:15:36 +02:00
void ffPrintDateTimeFormat(FFinstance* instance, const char* moduleName, const FFModuleArgs* moduleArgs)
2022-02-25 13:30:37 +01:00
{
const FFDateTimeResult* result = ffDetectDateTime(instance);
2022-06-17 18:15:36 +02:00
ffPrintFormat(instance, moduleName, 0, moduleArgs, FF_DATETIME_NUM_FORMAT_ARGS, (FFformatarg[]) {
2022-02-25 13:30:37 +01:00
{FF_FORMAT_ARG_TYPE_UINT16, &result->year},
{FF_FORMAT_ARG_TYPE_UINT8, &result->yearShort},
{FF_FORMAT_ARG_TYPE_UINT8, &result->month},
{FF_FORMAT_ARG_TYPE_STRBUF, &result->monthPretty},
{FF_FORMAT_ARG_TYPE_STRBUF, &result->monthName},
{FF_FORMAT_ARG_TYPE_STRBUF, &result->monthNameShort},
{FF_FORMAT_ARG_TYPE_UINT8, &result->week},
{FF_FORMAT_ARG_TYPE_STRBUF, &result->weekday},
{FF_FORMAT_ARG_TYPE_STRBUF, &result->weekdayShort},
{FF_FORMAT_ARG_TYPE_UINT16, &result->dayInYear},
{FF_FORMAT_ARG_TYPE_UINT8, &result->dayInMonth},
{FF_FORMAT_ARG_TYPE_UINT8, &result->dayInWeek},
{FF_FORMAT_ARG_TYPE_UINT8, &result->hour},
{FF_FORMAT_ARG_TYPE_STRBUF, &result->hourPretty},
{FF_FORMAT_ARG_TYPE_UINT8, &result->hour12},
{FF_FORMAT_ARG_TYPE_STRBUF, &result->hour12Pretty},
{FF_FORMAT_ARG_TYPE_UINT8, &result->minute},
{FF_FORMAT_ARG_TYPE_STRBUF, &result->minutePretty},
{FF_FORMAT_ARG_TYPE_UINT8, &result->second},
{FF_FORMAT_ARG_TYPE_STRBUF, &result->secondPretty}
});
}
void ffPrintDateTime(FFinstance* instance)
{
2022-06-17 18:15:36 +02:00
if(instance->config.dateTime.outputFormat.length > 0)
2022-02-25 13:30:37 +01:00
{
2022-06-17 18:15:36 +02:00
ffPrintDateTimeFormat(instance, FF_DATETIME_MODULE_NAME, &instance->config.dateTime);
2022-02-25 13:30:37 +01:00
return;
}
const FFDateTimeResult* datetime = ffDetectDateTime(instance);
2022-06-17 18:15:36 +02:00
ffPrintLogoAndKey(instance, FF_DATETIME_MODULE_NAME, 0, &instance->config.dateTime.key);
2022-02-25 13:30:37 +01:00
//yyyy-mm-dd hh:mm:ss
printf("%u-%s-%u %s:%s:%s\n", datetime->year, datetime->monthPretty.chars, datetime->dayInMonth, datetime->hourPretty.chars, datetime->minutePretty.chars, datetime->secondPretty.chars);
}