mirror of
https://github.com/theoludwig/libcproject.git
synced 2024-11-13 23:43:13 +01:00
parent
a7aef0b954
commit
ded2ca0795
22
lib/date.c
22
lib/date.c
@ -285,3 +285,25 @@ void date_to_utc(struct date *date) {
|
||||
date->timezone_utc_offset = 0;
|
||||
date_add_hours(date, mathematics_opposite(timezone_utc_offset));
|
||||
}
|
||||
|
||||
struct date *date_get_now_utc() {
|
||||
struct date *date = malloc(sizeof(struct date));
|
||||
if (date == NULL) {
|
||||
perror("Error (date_get_now_utc)");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
time_t current_time = time(NULL);
|
||||
struct tm *current_time_tm = gmtime(¤t_time);
|
||||
|
||||
date->year = (uint16_t)(current_time_tm->tm_year + 1900);
|
||||
date->month = (uint8_t)(current_time_tm->tm_mon + 1);
|
||||
date->day = (uint8_t)current_time_tm->tm_mday;
|
||||
date->hours = (uint8_t)current_time_tm->tm_hour;
|
||||
date->minutes = (uint8_t)current_time_tm->tm_min;
|
||||
date->seconds = (uint8_t)current_time_tm->tm_sec;
|
||||
date->milliseconds = 0;
|
||||
date->timezone_utc_offset = 0;
|
||||
|
||||
return date;
|
||||
}
|
||||
|
@ -6,6 +6,7 @@
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <time.h>
|
||||
|
||||
#include "convert.h"
|
||||
#include "mathematics.h"
|
||||
@ -321,4 +322,12 @@ void date_add_days(struct date *date, int64_t days);
|
||||
*/
|
||||
void date_to_utc(struct date *date);
|
||||
|
||||
/**
|
||||
* @brief Get the current date in UTC.
|
||||
*
|
||||
* @return struct date*
|
||||
* @since v5.1.0
|
||||
*/
|
||||
struct date *date_get_now_utc();
|
||||
|
||||
#endif
|
||||
|
6
main.c
6
main.c
@ -122,5 +122,11 @@ int main() {
|
||||
terminal_print_array_list(array_list, terminal_print_int);
|
||||
array_list_free(array_list);
|
||||
|
||||
struct date* date = date_get_now_utc();
|
||||
string_t iso_string = date_to_iso_string(date);
|
||||
printf("date_get_now_utc = %s\n", iso_string);
|
||||
free(iso_string);
|
||||
free(date);
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user