|
libcproject
C static library easier to use than libc (C standard library).
|
#include <errno.h>#include <stdbool.h>#include <stdint.h>#include <stdio.h>#include <stdlib.h>#include <time.h>#include "convert.h"#include "mathematics.h"#include "string.h"#include "types.h"

Go to the source code of this file.
Data Structures | |
| struct | date |
| Date object representing a single moment in time. More... | |
Macros | |
| #define | SECONDS_PER_MINUTE 60 |
| #define | SECONDS_PER_HOUR (60 * SECONDS_PER_MINUTE) |
| #define | SECONDS_PER_DAY (24 * SECONDS_PER_HOUR) |
| #define | MILLISECONDS_PER_SECOND 1000 |
Functions | |
| struct date * | date_copy (struct date *date_to_copy) |
| Return the copy of a date. More... | |
| bool | date_get_is_valid_year (uint16_t year) |
| Check if a year is valid, between [0, 9999] (inclusive). More... | |
| bool | date_get_is_valid_month (uint8_t month) |
| Check if a month is valid, between [1, 12] (inclusive). More... | |
| bool | date_get_is_valid_day (uint8_t day) |
| Check if a day is valid, between [1, 31] (inclusive). More... | |
| bool | date_get_is_valid_hours (uint8_t hours) |
| Check if hours are valid, between [0, 23] (inclusive). More... | |
| bool | date_get_is_valid_minutes (uint8_t minutes) |
| Check if minutes are valid, between [0, 59] (inclusive). More... | |
| bool | date_get_is_valid_seconds (uint8_t seconds) |
| Check if seconds are valid, between [0, 59] (inclusive). More... | |
| bool | date_get_is_valid_milliseconds (uint16_t milliseconds) |
| Check if milliseconds are valid, between [0, 999] (inclusive). More... | |
| bool | date_get_is_valid_timezone_utc_offset (int8_t timezone_utc_offset) |
| Check if the timezone UTC offset is valid, between [-12, 14] (inclusive). More... | |
| bool | date_get_is_valid (struct date *date) |
| Check if the date is valid (all fields are possible). More... | |
| string_t | date_to_iso_string (struct date *date) |
String representing the date in the date time string format, a simplified format based on ISO 8601, which is always 24 characters long (YYYY-MM-DDTHH:mm:ss.sssZ). The timezone is always UTC, as denoted by the suffix Z. More... | |
| string_t | date_to_iso_string_without_time (struct date *date) |
String representing the date in the ISO 8601 format, without time information (YYYY-MM-DD). More... | |
| struct date * | date_from_iso_string (string_t iso_string) |
Create a date from an ISO 8601 string, with the format YYYY-MM-DDTHH:mm:ss.sssZ. More... | |
| uint8_t | date_get_days_of_month (uint8_t month, uint16_t year) |
| Get number of days in one month [1, 12]. More... | |
| bool | date_get_is_leap_year (uint16_t year) |
| Determine if a year is a leap year. More... | |
| uint64_t | date_convert_milliseconds_to_seconds (uint16_t milliseconds) |
| Convert milliseconds to seconds. More... | |
| uint64_t | date_convert_seconds_to_milliseconds (uint64_t seconds) |
| Convert seconds to milliseconds. More... | |
| uint64_t | date_convert_days_to_seconds (uint64_t days) |
| Convert days to seconds. More... | |
| uint64_t | date_convert_hms_to_seconds (uint8_t hours, uint8_t minutes, uint8_t seconds) |
| Convert hours, minutes, and seconds to seconds. More... | |
| uint64_t | date_to_total_seconds (struct date *date) |
| Convert a date to total seconds. More... | |
| uint64_t | date_duration_seconds_between_2_dates (struct date *date1, struct date *date2) |
| Calculate the duration in seconds between 2 dates. More... | |
| void | date_add_hours (struct date *date, int64_t hours) |
| Add hours to the date, managing the day, month, year changes if necessary. More... | |
| void | date_add_days (struct date *date, int64_t days) |
| Adds days to the date, managing month and year changes as needed. More... | |
| void | date_to_utc (struct date *date) |
| Transform the date with a Timezone UTC Offset to UTC (timezone_utc_offset = 0). More... | |
| struct date * | date_get_now_utc () |
| Get the current date in UTC. More... | |
| struct date * | date_get_now_local () |
| Get the current date in local time. More... | |
| uint16_t | date_get_age (struct date *birth_date, struct date *current_date) |
| Calculates the age of a person based on their birth date. More... | |
| struct date |
| #define SECONDS_PER_HOUR (60 * SECONDS_PER_MINUTE) |
| #define SECONDS_PER_DAY (24 * SECONDS_PER_HOUR) |
Return the copy of a date.
| date |
| bool date_get_is_valid_year | ( | uint16_t | year | ) |
Check if a year is valid, between [0, 9999] (inclusive).
| year |
| bool date_get_is_valid_month | ( | uint8_t | month | ) |
Check if a month is valid, between [1, 12] (inclusive).
| month |
| bool date_get_is_valid_day | ( | uint8_t | day | ) |
Check if a day is valid, between [1, 31] (inclusive).
| day |
| bool date_get_is_valid_hours | ( | uint8_t | hours | ) |
Check if hours are valid, between [0, 23] (inclusive).
| hours |
| bool date_get_is_valid_minutes | ( | uint8_t | minutes | ) |
Check if minutes are valid, between [0, 59] (inclusive).
| minutes |
| bool date_get_is_valid_seconds | ( | uint8_t | seconds | ) |
Check if seconds are valid, between [0, 59] (inclusive).
| seconds |
| bool date_get_is_valid_milliseconds | ( | uint16_t | milliseconds | ) |
Check if milliseconds are valid, between [0, 999] (inclusive).
| milliseconds |
| bool date_get_is_valid_timezone_utc_offset | ( | int8_t | timezone_utc_offset | ) |
Check if the timezone UTC offset is valid, between [-12, 14] (inclusive).
| timezone_utc_offset |
| bool date_get_is_valid | ( | struct date * | date | ) |
Check if the date is valid (all fields are possible).
| date |
String representing the date in the date time string format, a simplified format based on ISO 8601, which is always 24 characters long (YYYY-MM-DDTHH:mm:ss.sssZ). The timezone is always UTC, as denoted by the suffix Z.
| date |
String representing the date in the ISO 8601 format, without time information (YYYY-MM-DD).
| date |
Create a date from an ISO 8601 string, with the format YYYY-MM-DDTHH:mm:ss.sssZ.
The timezone is always UTC, as denoted by the suffix Z.
| iso_string |
| uint8_t date_get_days_of_month | ( | uint8_t | month, |
| uint16_t | year | ||
| ) |
Get number of days in one month [1, 12].
| month |
| bool date_get_is_leap_year | ( | uint16_t | year | ) |
Determine if a year is a leap year.
| year |
| uint64_t date_convert_milliseconds_to_seconds | ( | uint16_t | milliseconds | ) |
Convert milliseconds to seconds.
| milliseconds |
| uint64_t date_convert_seconds_to_milliseconds | ( | uint64_t | seconds | ) |
Convert seconds to milliseconds.
| seconds |
| uint64_t date_convert_days_to_seconds | ( | uint64_t | days | ) |
Convert days to seconds.
| days |
| uint64_t date_convert_hms_to_seconds | ( | uint8_t | hours, |
| uint8_t | minutes, | ||
| uint8_t | seconds | ||
| ) |
Convert hours, minutes, and seconds to seconds.
| hours | |
| minutes | |
| seconds |
| uint64_t date_to_total_seconds | ( | struct date * | date | ) |
Convert a date to total seconds.
| date |
Calculate the duration in seconds between 2 dates.
| date1 | |
| date2 |
| void date_add_hours | ( | struct date * | date, |
| int64_t | hours | ||
| ) |
Add hours to the date, managing the day, month, year changes if necessary.
NOTE: Mutates the date.
| date | |
| hours |
| void date_add_days | ( | struct date * | date, |
| int64_t | days | ||
| ) |
Adds days to the date, managing month and year changes as needed.
NOTE: Mutates the date.
| date | The date to which days are being added. |
| days | The number of days to add. |
| void date_to_utc | ( | struct date * | date | ) |
Transform the date with a Timezone UTC Offset to UTC (timezone_utc_offset = 0).
NOTE: Mutates the date.
| date |
| struct date* date_get_now_utc | ( | ) |
Get the current date in UTC.
| struct date* date_get_now_local | ( | ) |
Get the current date in local time.