annotate SDL3/SDL_time.h @ 1:20d02a178406 default tip

*: check in everything else yay
author Paper <paper@tflc.us>
date Mon, 05 Jan 2026 02:15:46 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1 /*
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2 Simple DirectMedia Layer
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3 Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5 This software is provided 'as-is', without any express or implied
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6 warranty. In no event will the authors be held liable for any damages
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7 arising from the use of this software.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9 Permission is granted to anyone to use this software for any purpose,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
10 including commercial applications, and to alter it and redistribute it
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
11 freely, subject to the following restrictions:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
12
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
13 1. The origin of this software must not be misrepresented; you must not
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
14 claim that you wrote the original software. If you use this software
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
15 in a product, an acknowledgment in the product documentation would be
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
16 appreciated but is not required.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
17 2. Altered source versions must be plainly marked as such, and must not be
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
18 misrepresented as being the original software.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
19 3. This notice may not be removed or altered from any source distribution.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
20 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
21
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
22 #ifndef SDL_time_h_
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
23 #define SDL_time_h_
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
24
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
25 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
26 * # CategoryTime
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
27 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
28 * SDL realtime clock and date/time routines.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
29 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
30 * There are two data types that are used in this category: SDL_Time, which
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
31 * represents the nanoseconds since a specific moment (an "epoch"), and
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
32 * SDL_DateTime, which breaks time down into human-understandable components:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
33 * years, months, days, hours, etc.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
34 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
35 * Much of the functionality is involved in converting those two types to
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
36 * other useful forms.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
37 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
38
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
39 #include <SDL3/SDL_error.h>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
40 #include <SDL3/SDL_stdinc.h>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
41
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
42 #include <SDL3/SDL_begin_code.h>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
43 /* Set up for C function definitions, even when using C++ */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
44 #ifdef __cplusplus
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
45 extern "C" {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
46 #endif
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
47
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
48 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
49 * A structure holding a calendar date and time broken down into its
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
50 * components.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
51 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
52 * \since This struct is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
53 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
54 typedef struct SDL_DateTime
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
55 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
56 int year; /**< Year */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
57 int month; /**< Month [01-12] */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
58 int day; /**< Day of the month [01-31] */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
59 int hour; /**< Hour [0-23] */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
60 int minute; /**< Minute [0-59] */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
61 int second; /**< Seconds [0-60] */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
62 int nanosecond; /**< Nanoseconds [0-999999999] */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
63 int day_of_week; /**< Day of the week [0-6] (0 being Sunday) */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
64 int utc_offset; /**< Seconds east of UTC */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
65 } SDL_DateTime;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
66
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
67 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
68 * The preferred date format of the current system locale.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
69 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
70 * \since This enum is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
71 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
72 * \sa SDL_GetDateTimeLocalePreferences
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
73 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
74 typedef enum SDL_DateFormat
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
75 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
76 SDL_DATE_FORMAT_YYYYMMDD = 0, /**< Year/Month/Day */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
77 SDL_DATE_FORMAT_DDMMYYYY = 1, /**< Day/Month/Year */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
78 SDL_DATE_FORMAT_MMDDYYYY = 2 /**< Month/Day/Year */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
79 } SDL_DateFormat;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
80
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
81 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
82 * The preferred time format of the current system locale.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
83 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
84 * \since This enum is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
85 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
86 * \sa SDL_GetDateTimeLocalePreferences
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
87 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
88 typedef enum SDL_TimeFormat
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
89 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
90 SDL_TIME_FORMAT_24HR = 0, /**< 24 hour time */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
91 SDL_TIME_FORMAT_12HR = 1 /**< 12 hour time */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
92 } SDL_TimeFormat;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
93
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
94 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
95 * Gets the current preferred date and time format for the system locale.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
96 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
97 * This might be a "slow" call that has to query the operating system. It's
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
98 * best to ask for this once and save the results. However, the preferred
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
99 * formats can change, usually because the user has changed a system
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
100 * preference outside of your program.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
101 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
102 * \param dateFormat a pointer to the SDL_DateFormat to hold the returned date
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
103 * format, may be NULL.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
104 * \param timeFormat a pointer to the SDL_TimeFormat to hold the returned time
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
105 * format, may be NULL.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
106 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
107 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
108 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
109 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
110 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
111 extern SDL_DECLSPEC bool SDLCALL SDL_GetDateTimeLocalePreferences(SDL_DateFormat *dateFormat, SDL_TimeFormat *timeFormat);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
112
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
113 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
114 * Gets the current value of the system realtime clock in nanoseconds since
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
115 * Jan 1, 1970 in Universal Coordinated Time (UTC).
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
116 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
117 * \param ticks the SDL_Time to hold the returned tick count.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
118 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
119 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
120 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
121 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
122 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
123 extern SDL_DECLSPEC bool SDLCALL SDL_GetCurrentTime(SDL_Time *ticks);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
124
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
125 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
126 * Converts an SDL_Time in nanoseconds since the epoch to a calendar time in
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
127 * the SDL_DateTime format.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
128 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
129 * \param ticks the SDL_Time to be converted.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
130 * \param dt the resulting SDL_DateTime.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
131 * \param localTime the resulting SDL_DateTime will be expressed in local time
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
132 * if true, otherwise it will be in Universal Coordinated
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
133 * Time (UTC).
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
134 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
135 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
136 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
137 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
138 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
139 extern SDL_DECLSPEC bool SDLCALL SDL_TimeToDateTime(SDL_Time ticks, SDL_DateTime *dt, bool localTime);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
140
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
141 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
142 * Converts a calendar time to an SDL_Time in nanoseconds since the epoch.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
143 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
144 * This function ignores the day_of_week member of the SDL_DateTime struct, so
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
145 * it may remain unset.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
146 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
147 * \param dt the source SDL_DateTime.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
148 * \param ticks the resulting SDL_Time.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
149 * \returns true on success or false on failure; call SDL_GetError() for more
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
150 * information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
151 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
152 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
153 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
154 extern SDL_DECLSPEC bool SDLCALL SDL_DateTimeToTime(const SDL_DateTime *dt, SDL_Time *ticks);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
155
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
156 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
157 * Converts an SDL time into a Windows FILETIME (100-nanosecond intervals
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
158 * since January 1, 1601).
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
159 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
160 * This function fills in the two 32-bit values of the FILETIME structure.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
161 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
162 * \param ticks the time to convert.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
163 * \param dwLowDateTime a pointer filled in with the low portion of the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
164 * Windows FILETIME value.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
165 * \param dwHighDateTime a pointer filled in with the high portion of the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
166 * Windows FILETIME value.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
167 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
168 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
169 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
170 extern SDL_DECLSPEC void SDLCALL SDL_TimeToWindows(SDL_Time ticks, Uint32 *dwLowDateTime, Uint32 *dwHighDateTime);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
171
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
172 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
173 * Converts a Windows FILETIME (100-nanosecond intervals since January 1,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
174 * 1601) to an SDL time.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
175 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
176 * This function takes the two 32-bit values of the FILETIME structure as
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
177 * parameters.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
178 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
179 * \param dwLowDateTime the low portion of the Windows FILETIME value.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
180 * \param dwHighDateTime the high portion of the Windows FILETIME value.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
181 * \returns the converted SDL time.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
182 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
183 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
184 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
185 extern SDL_DECLSPEC SDL_Time SDLCALL SDL_TimeFromWindows(Uint32 dwLowDateTime, Uint32 dwHighDateTime);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
186
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
187 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
188 * Get the number of days in a month for a given year.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
189 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
190 * \param year the year.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
191 * \param month the month [1-12].
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
192 * \returns the number of days in the requested month or -1 on failure; call
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
193 * SDL_GetError() for more information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
194 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
195 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
196 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
197 extern SDL_DECLSPEC int SDLCALL SDL_GetDaysInMonth(int year, int month);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
198
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
199 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
200 * Get the day of year for a calendar date.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
201 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
202 * \param year the year component of the date.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
203 * \param month the month component of the date.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
204 * \param day the day component of the date.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
205 * \returns the day of year [0-365] if the date is valid or -1 on failure;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
206 * call SDL_GetError() for more information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
207 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
208 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
209 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
210 extern SDL_DECLSPEC int SDLCALL SDL_GetDayOfYear(int year, int month, int day);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
211
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
212 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
213 * Get the day of week for a calendar date.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
214 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
215 * \param year the year component of the date.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
216 * \param month the month component of the date.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
217 * \param day the day component of the date.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
218 * \returns a value between 0 and 6 (0 being Sunday) if the date is valid or
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
219 * -1 on failure; call SDL_GetError() for more information.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
220 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
221 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
222 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
223 extern SDL_DECLSPEC int SDLCALL SDL_GetDayOfWeek(int year, int month, int day);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
224
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
225 /* Ends C function definitions when using C++ */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
226 #ifdef __cplusplus
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
227 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
228 #endif
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
229 #include <SDL3/SDL_close_code.h>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
230
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
231 #endif /* SDL_time_h_ */