4#include <SDL3/SDL_time.h>
5#include "SDL3pp_stdinc.h"
69 int utc_offset) noexcept
104 constexpr explicit operator bool() const noexcept
106 return year != 0 || month != 0 || day != 0 || hour != 0 || minute != 0 ||
107 second != 0 || nanosecond != 0;
115 constexpr int GetYear() const noexcept {
return year; }
134 constexpr int GetMonth() const noexcept {
return month; }
153 constexpr int GetDay() const noexcept {
return day; }
172 constexpr int GetHour() const noexcept {
return hour; }
191 constexpr int GetMinute() const noexcept {
return minute; }
210 constexpr int GetSecond() const noexcept {
return second; }
239 nanosecond = newNanosecond;
258 day_of_week = newDay_of_week;
277 utc_offset = newUtc_offset;
292 operator Time()
const;
305 SDL_DATE_FORMAT_YYYYMMDD;
308 SDL_DATE_FORMAT_DDMMYYYY;
311 SDL_DATE_FORMAT_MMDDYYYY;
345 CheckError(SDL_GetDateTimeLocalePreferences(dateFormat, timeFormat));
396 SDL_TimeToWindows(
ToNS(), dwLowDateTime, dwHighDateTime);
401 return Time::FromNS(SDL_TimeFromWindows(dwLowDateTime, dwHighDateTime));
416 return CheckError(SDL_GetDaysInMonth(year, month), -1);
432 return CheckError(SDL_GetDayOfYear(year, month, day), -1);
448 return CheckError(SDL_GetDayOfWeek(year, month, day), -1);
SDL times are signed, 64-bit integers representing nanoseconds since the Unix epoch (Jan 1,...
Definition: SDL3pp_stdinc.h:414
constexpr Sint64 ToNS() const
Converts to nanoseconds Sint64.
Definition: SDL3pp_stdinc.h:466
static constexpr Time FromNS(Sint64 time)
Create from a nanoseconds Sint64.
Definition: SDL3pp_stdinc.h:460
constexpr void CheckError(bool result)
Check and throw if returned value from SDL is an error.
Definition: SDL3pp_error.h:197
::Uint32 Uint32
An unsigned 32-bit integer type.
Definition: SDL3pp_stdinc.h:341
SDL_TimeFormat TimeFormat
The preferred time format of the current system locale.
Definition: SDL3pp_time.h:320
static Time FromWindows(Uint32 dwLowDateTime, Uint32 dwHighDateTime)
Converts a Windows FILETIME (100-nanosecond intervals since January 1, 1601) to an SDL time.
Definition: SDL3pp_time.h:399
void ToWindows(Uint32 *dwLowDateTime, Uint32 *dwHighDateTime) const
Converts an SDL time into a Windows FILETIME (100-nanosecond intervals since January 1,...
Definition: SDL3pp_time.h:394
static Time Current()
Gets the current value of the system realtime clock in nanoseconds since Jan 1, 1970 in Universal Coo...
Definition: SDL3pp_time.h:348
SDL_DateTime DateTimeRaw
Alias to raw representation for DateTime.
Definition: SDL3pp_time.h:26
constexpr DateFormat DATE_FORMAT_DDMMYYYY
Day/Month/Year.
Definition: SDL3pp_time.h:307
constexpr TimeFormat TIME_FORMAT_12HR
12 hour time
Definition: SDL3pp_time.h:324
constexpr DateFormat DATE_FORMAT_MMDDYYYY
Month/Day/Year.
Definition: SDL3pp_time.h:310
SDL_DateFormat DateFormat
The preferred date format of the current system locale.
Definition: SDL3pp_time.h:302
constexpr DateFormat DATE_FORMAT_YYYYMMDD
Year/Month/Day.
Definition: SDL3pp_time.h:304
DateTime TimeToDateTime(Time ticks, bool localTime=true)
Converts an Time in nanoseconds since the epoch to a calendar time in the DateTime format.
Definition: SDL3pp_time.h:368
Time DateTimeToTime(const DateTimeRaw &dt)
Converts a calendar time to an Time in nanoseconds since the epoch.
Definition: SDL3pp_time.h:385
constexpr TimeFormat TIME_FORMAT_24HR
24 hour time
Definition: SDL3pp_time.h:322
int GetDayOfYear(int year, int month, int day)
Get the day of year for a calendar date.
Definition: SDL3pp_time.h:430
int GetDaysInMonth(int year, int month)
Get the number of days in a month for a given year.
Definition: SDL3pp_time.h:414
int GetDayOfWeek(int year, int month, int day)
Get the day of week for a calendar date.
Definition: SDL3pp_time.h:446
void GetDateTimeLocalePreferences(DateFormat *dateFormat, TimeFormat *timeFormat)
Gets the current preferred date and time format for the system locale.
Definition: SDL3pp_time.h:342
Main include header for the SDL3pp library.
A structure holding a calendar date and time broken down into its components.
Definition: SDL3pp_time.h:37
constexpr DateTime & SetDay_of_week(int newDay_of_week) noexcept
Set the day_of_week.
Definition: SDL3pp_time.h:256
constexpr DateTime & SetUtc_offset(int newUtc_offset) noexcept
Set the utc_offset.
Definition: SDL3pp_time.h:275
constexpr int GetNanosecond() const noexcept
Get the nanosecond.
Definition: SDL3pp_time.h:229
constexpr int GetUtc_offset() const noexcept
Get the utc_offset.
Definition: SDL3pp_time.h:267
constexpr DateTime & SetHour(int newHour) noexcept
Set the hour.
Definition: SDL3pp_time.h:180
constexpr DateTime & SetDay(int newDay) noexcept
Set the day.
Definition: SDL3pp_time.h:161
constexpr DateTime & SetMonth(int newMonth) noexcept
Set the month.
Definition: SDL3pp_time.h:142
constexpr DateTime & SetMinute(int newMinute) noexcept
Set the minute.
Definition: SDL3pp_time.h:199
constexpr int GetDay_of_week() const noexcept
Get the day_of_week.
Definition: SDL3pp_time.h:248
constexpr DateTime & SetNanosecond(int newNanosecond) noexcept
Set the nanosecond.
Definition: SDL3pp_time.h:237
constexpr int GetMinute() const noexcept
Get the minute.
Definition: SDL3pp_time.h:191
constexpr DateTime(int year, int month, int day, int hour, int minute, int second, int nanosecond, int day_of_week, int utc_offset) noexcept
Constructs from its fields.
Definition: SDL3pp_time.h:61
constexpr int GetSecond() const noexcept
Get the second.
Definition: SDL3pp_time.h:210
constexpr DateTime(const DateTimeRaw &dateTime={}) noexcept
Wraps DateTime.
Definition: SDL3pp_time.h:43
constexpr DateTime & SetSecond(int newSecond) noexcept
Set the second.
Definition: SDL3pp_time.h:218
constexpr DateTime & SetYear(int newYear) noexcept
Set the year.
Definition: SDL3pp_time.h:123
DateTime(Time ticks, bool localTime=true)
Converts an Time in nanoseconds since the epoch to a calendar time in the DateTime format.
Definition: SDL3pp_time.h:94
constexpr int GetHour() const noexcept
Get the hour.
Definition: SDL3pp_time.h:172
constexpr int GetDay() const noexcept
Get the day.
Definition: SDL3pp_time.h:153
constexpr int GetYear() const noexcept
Get the year.
Definition: SDL3pp_time.h:115
constexpr int GetMonth() const noexcept
Get the month.
Definition: SDL3pp_time.h:134