Translated using Weblate.
[gammu.git] / include / gammu-datetime.h
blobf0c901fee03eef54e0f88c7291bce80b105ea843
1 /**
2 * \file gammu-datetime.h
3 * \author Michal Čihař
5 * Date and time manipulations.
6 */
7 #ifndef __gammu_datetime_h
8 #define __gammu_datetime_h
10 /**
11 * \defgroup DateTime Date and time
12 * Date and time handling.
15 #include <time.h>
16 #include <gammu-error.h>
17 #include <gammu-statemachine.h>
19 /**
20 * Structure used for saving date and time
22 * \ingroup DateTime
24 typedef struct {
25 /**
26 * The difference between local time and GMT in seconds
28 int Timezone;
30 /**
31 * Seconds.
33 int Second;
34 /**
35 * Minutes.
37 int Minute;
38 /**
39 * Hours.
41 int Hour;
43 /**
44 * Days.
46 int Day;
47 /**
48 * January = 1, February = 2, etc.
50 int Month;
51 /**
52 * Complete year number. Not 03, but 2003
54 int Year;
55 } GSM_DateTime;
57 /**
58 * Structure used for saving relative date and time
60 * \ingroup DateTime
62 typedef struct {
63 /**
64 * The difference of timezones in seconds
66 int Timezone;
68 /**
69 * Seconds diff.
71 int Second;
72 /**
73 * Minutes diff.
75 int Minute;
76 /**
77 * Hours diff.
79 int Hour;
81 /**
82 * Days diff.
84 int Day;
85 /**
86 * Months diff.
88 int Month;
89 /**
90 * Years diff.
92 int Year;
93 } GSM_DeltaTime;
95 /**
96 * Returns string for current day of week.
98 * \param year Year.
99 * \param month Month.
100 * \param day Day.
102 * \return Pointer to static buffer containing day of week string.
104 * \ingroup DateTime
106 char *DayOfWeek(unsigned int year, unsigned int month, unsigned int day);
109 * Returns current timestamp.
111 * \param Date Storage for date time structure.
113 * \ingroup DateTime
115 void GSM_GetCurrentDateTime(GSM_DateTime * Date);
118 * Converts \ref GSM_DateTime to time_t.
120 * \param DT Input timestamp.
122 * \return time_t value.
124 * \ingroup DateTime
126 time_t Fill_Time_T(GSM_DateTime DT);
129 * Returns the local timezone offset in seconds.
130 * For example 7200 for CEST.
132 * \return Timezone offset seconds.
134 * \ingroup DateTime
136 int GSM_GetLocalTimezoneOffset(void);
139 * Converts time_t to gammu \ref GSM_DateTime structure.
141 * \param Date Storage for date.
142 * \param timet Input date.
144 * \ingroup DateTime
146 void Fill_GSM_DateTime(GSM_DateTime * Date, time_t timet);
149 * Converts string (seconds since epoch) to gammu \ref GSM_DateTime structure.
151 * \param Date Storage for date.
152 * \param str Input date.
154 * \ingroup DateTime
156 void GSM_DateTimeFromTimestamp(GSM_DateTime *Date, const char *str);
159 * Converts gammu \ref GSM_DateTime structure to string (seconds since epoch).
161 * \param Date Date.
162 * \param str Strorage for string.
164 * \ingroup DateTime
166 void GSM_DateTimeToTimestamp(GSM_DateTime *Date, char *str);
169 * Converts timestamp to string according to OS settings.
171 * \param dt Input timestamp.
172 * \param TimeZone Whether to include time zone.
174 * \return Pointer to static buffer containing string.
176 * \ingroup DateTime
178 char *OSDateTime(GSM_DateTime dt, gboolean TimeZone);
181 * Converts date from timestamp to string according to OS settings.
183 * \param dt Input timestamp.
185 * \return Pointer to static buffer containing string.
187 * \ingroup DateTime
189 char *OSDate(GSM_DateTime dt);
192 * Checks whether date is valid. This does not check time, see
193 * \ref CheckTime for this.
195 * \param date Structure where to check date.
197 * \return True if date is correct.
199 * \ingroup DateTime
201 gboolean CheckDate(GSM_DateTime * date);
204 * Checks whether time is valid. This does not check date, see
205 * \ref CheckDate for this.
207 * \param date Structure where to check time.
209 * \return True if time is correct.
211 * \ingroup DateTime
213 gboolean CheckTime(GSM_DateTime * date);
216 * Reads date and time from phone.
218 * \param s State machine pointer.
219 * \param date_time Storage for date.
221 * \return Error code
223 * \ingroup Category
225 GSM_Error GSM_GetDateTime(GSM_StateMachine * s, GSM_DateTime * date_time);
228 * Sets date and time in phone.
230 * \param s State machine pointer.
231 * \param date_time Date to set.
233 * \return Error code
235 * \ingroup Category
237 GSM_Error GSM_SetDateTime(GSM_StateMachine * s, GSM_DateTime * date_time);
238 #endif
240 /* Editor configuration
241 * vim: noexpandtab sw=8 ts=8 sts=8 tw=72: