|
GnuCash c935c2f+
|
Date and Time handling routines. More...
#include <glib-object.h>#include <time.h>Go to the source code of this file.
Data Structures | |
| struct | Time64 |
Macros | |
| #define | MAX_DATE_LENGTH 34 |
| The maximum length of a string created by the date printers. | |
| #define | QOF_UTC_DATE_FORMAT "%Y-%m-%dT%H:%M:%SZ" |
| Constants. | |
| #define | DATE_FORMAT_FIRST QOF_DATE_FORMAT_US |
| #define | DATE_FORMAT_LAST QOF_DATE_FORMAT_UTC |
Typedefs | |
| typedef gint64 | time64 |
| Most systems that are currently maintained, including Microsoft Windows, BSD-derived Unixes and Linux, support 64-bit time_t even on 32-bit architectures. | |
Enumerations | |
| enum | QofDateFormat { QOF_DATE_FORMAT_US , QOF_DATE_FORMAT_UK , QOF_DATE_FORMAT_CE , QOF_DATE_FORMAT_ISO , QOF_DATE_FORMAT_LOCALE , QOF_DATE_FORMAT_UTC , QOF_DATE_FORMAT_CUSTOM , QOF_DATE_FORMAT_UNSET } |
| Enum for determining a date format. More... | |
| enum | QofDateCompletion { QOF_DATE_COMPLETION_THISYEAR , QOF_DATE_COMPLETION_SLIDING } |
| Enum for date completion modes (for dates entered without year) More... | |
| enum | GNCDateMonthFormat { GNCDATE_MONTH_NUMBER , GNCDATE_MONTH_ABBREV , GNCDATE_MONTH_NAME } |
| This is how to format the month, as a number, an abbreviated string, or the full name. More... | |
Functions | |
| struct tm * | gnc_localtime (const time64 *secs) |
| fill out a time struct from a 64-bit time value. | |
| struct tm * | gnc_localtime_r (const time64 *secs, struct tm *time) |
| fill out a time struct from a 64-bit time value adjusted for the current time zone. | |
| struct tm * | gnc_gmtime (const time64 *secs) |
| fill out a time struct from a 64-bit time value | |
| gint | gnc_start_of_week (void) |
| returns an integer corresponding to locale start of week | |
| time64 | gnc_mktime (struct tm *time) |
| calculate seconds from the epoch given a time struct | |
| time64 | gnc_timegm (struct tm *time) |
| calculate seconds from the epoch given a time struct | |
| gchar * | gnc_ctime (const time64 *secs) |
| Return a string representation of a date from a 64-bit time value. | |
| time64 | gnc_time (time64 *tbuf) |
| get the current time | |
| gdouble | gnc_difftime (const time64 secs1, const time64 secs2) |
| Find the difference in seconds between two time values (deprecated) | |
| void | gnc_tm_free (struct tm *time) |
| free a struct tm* created with gnc_localtime() or gnc_gmtime() | |
| time64 | time64CanonicalDayTime (time64 t) |
| convert a time64 on a certain day (localtime) to the time64 representing midday on that day. | |
| time64 | gdate_to_time64 (GDate d) |
| Turns a GDate into a time64, returning the first second of the day. | |
| time64 | gnc_dmy2time64 (gint day, gint month, gint year) |
| Convert a day, month, and year to a time64, returning the first second of the day. | |
| time64 | gnc_dmy2time64_neutral (gint day, gint month, gint year) |
| Converts a day, month, and year to a time64 representing 11:00:00 UTC 11:00:00 UTC falls on the same time in almost all timezones, the exceptions being the +13, +14, and -12 timezones used by countries along the International Date Line. | |
| time64 | gnc_dmy2time64_end (gint day, gint month, gint year) |
| Same as gnc_dmy2time64, but last second of the day. | |
| time64 | gnc_iso8601_to_time64_gmt (const gchar *) |
| The gnc_iso8601_to_time64_gmt() routine converts an ISO-8601 style date/time string to time64. | |
| gchar * | gnc_time64_to_iso8601_buff (time64, char *buff) |
| The gnc_time64_to_iso8601_buff() routine takes the input UTC time64 value and prints it as an ISO-8601 style string. | |
String / DateFormat conversion. | |
| const gchar * | gnc_date_dateformat_to_string (QofDateFormat format) |
| The string->value versions return FALSE on success and TRUE on failure. | |
| gboolean | gnc_date_string_to_dateformat (const gchar *format_string, QofDateFormat *format) |
| Converts the date format to a printable string. | |
| const gchar * | gnc_date_monthformat_to_string (GNCDateMonthFormat format) |
| gboolean | gnc_date_string_to_monthformat (const gchar *format_string, GNCDateMonthFormat *format) |
| Converts the month format to a printable string. | |
| char * | gnc_print_time64 (time64 time, const char *format) |
| print a time64 as a date string per format | |
GDate time64 setters | |
| GDate * | gnc_g_date_new_today (void) |
| Returns a newly allocated date of the current clock time, taken from time(2). | |
| void | gnc_gdate_set_today (GDate *gd) |
| Set a GDate to the current day. | |
| void | gnc_gdate_set_time64 (GDate *gd, time64 time) |
| Set a GDate to a time64. | |
QofDateFormat functions | |
| QofDateFormat | qof_date_format_get (void) |
| The qof_date_format_get routine returns the date format that the date printing will use when printing a date, and the scanning routines will assume when parsing a date. | |
| void | qof_date_format_set (QofDateFormat df) |
| The qof_date_format_set() routine sets date format to one of US, UK, CE, OR ISO. | |
| const gchar * | qof_date_format_get_string (QofDateFormat df) |
| This function returns a strftime formatting string for printing an all numeric date (e.g. | |
| const gchar * | qof_date_text_format_get_string (QofDateFormat df) |
| This function returns a strftime formatting string for printing a date using words and numbers (e.g. | |
| void | qof_date_completion_set (QofDateCompletion dc, int backmonths) |
| The qof_date_completion_set() routing sets the date completion method to one of QOF_DATE_COMPLETION_THISYEAR (for completing the year to the current calendar year) or QOF_DATE_COMPLETION_SLIDING (for using a sliding 12-month window). | |
| gchar | dateSeparator (void) |
| dateSeparator Return the field separator for the current date format | |
Date Printing/Scanning functions | |
| gsize | qof_strftime (gchar *buf, gsize max, const gchar *format, const struct tm *tm) |
| qof_strftime calls qof_format_time to print a given time and afterwards tries to put the result into a buffer of fixed size. | |
| size_t | qof_print_date_dmy_buff (gchar *buff, size_t buflen, int day, int month, int year) |
| qof_print_date_dmy_buff Convert a date as day / month / year integers into a localized string representation | |
| size_t | qof_print_date_buff (char *buff, size_t buflen, time64 secs) |
| Convenience: calls through to qof_print_date_dmy_buff(). | |
| size_t | qof_print_gdate (char *buf, size_t bufflen, const GDate *gd) |
| Convenience; calls through to qof_print_date_dmy_buff(). | |
| char * | qof_print_date (time64 secs) |
| Convenience; calls through to qof_print_date_dmy_buff(). | |
| gchar * | gnc_date_interval_format (time64 from_date, time64 to_date) |
| size_t | qof_print_date_time_buff (char *buff, size_t len, time64 secs) |
| Returns the number of bytes printed. | |
| gboolean | qof_scan_date (const char *buff, int *day, int *month, int *year) |
| qof_scan_date Convert a string into day / month / year integers according to the current dateFormat value. | |
Date Start/End Adjustment routines | |
Given a time value, adjust it to be the beginning or end of that day. | |
| void | gnc_tm_set_day_neutral (struct tm *tm) |
| The gnc_tm_set_day_neutral() inline routine will set the appropriate fields in the struct tm to indicate 10:59am of that day. | |
| time64 | gnc_time64_get_day_start (time64 time_val) |
| The gnc_time64_get_day_start() routine will take the given time in seconds and adjust it to the first second of that day. | |
| time64 | gnc_time64_get_day_neutral (time64 time_val) |
| The gnc_time64_get_day_neutral() routine will take the given time in seconds and adjust it to 10:59:00Z of that day. | |
| time64 | gnc_time64_get_day_end (time64 time_val) |
| The gnc_time64_get_day_end() routine will take the given time in seconds and adjust it to the last second of that day. | |
| int | gnc_date_get_last_mday (int month, int year) |
| Get the numerical last date of the month. | |
GDate hash table support | |
| gint | gnc_gdate_equal (gconstpointer gda, gconstpointer gdb) |
| Compares two GDate*'s for equality; useful for using GDate*'s as GHashTable keys. | |
| guint | gnc_gdate_hash (gconstpointer gd) |
| Provides a "hash" of a GDate* value; useful for using GDate*'s as GHashTable keys. | |
GDate to time64 conversions | |
| GDate | time64_to_gdate (time64 t) |
| Returns the GDate in which the time64 occurs. | |
| time64 | gnc_time64_get_day_start_gdate (const GDate *date) |
| The gnc_time64_get_day_start() routine will take the given time in GLib GDate format and adjust it to the first second of that day. | |
| time64 | gnc_time64_get_day_end_gdate (const GDate *date) |
| The gnc_time64_get_day_end() routine will take the given time in GLib GDate format and adjust it to the last second of that day. | |
Date Manipulation | |
| void | gnc_gdate_set_month_start (GDate *date) |
| This function modifies a GDate to set it to the first day of the month in which it falls. | |
| void | gnc_gdate_set_month_end (GDate *date) |
| This function modifies a GDate to set it to the last day of the month in which it falls. | |
| void | gnc_gdate_set_prev_month_start (GDate *date) |
| This function modifies a GDate to set it to the first day of the month prior to the one in which it falls. | |
| void | gnc_gdate_set_prev_month_end (GDate *date) |
| This function modifies a GDate to set it to the last day of the month prior to the one in which it falls. | |
| void | gnc_gdate_set_quarter_start (GDate *date) |
| This function modifies a GDate to set it to the first day of the quarter in which it falls. | |
| void | gnc_gdate_set_quarter_end (GDate *date) |
| This function modifies a GDate to set it to the last day of the quarter in which it falls. | |
| void | gnc_gdate_set_prev_quarter_start (GDate *date) |
| This function modifies a GDate to set it to the first day of the quarter prior to the one in which it falls. | |
| void | gnc_gdate_set_prev_quarter_end (GDate *date) |
| This function modifies a GDate to set it to the last day of the quarter prior to the one in which it falls. | |
| void | gnc_gdate_set_year_start (GDate *date) |
| This function modifies a GDate to set it to the first day of the year in which it falls. | |
| void | gnc_gdate_set_year_end (GDate *date) |
| This function modifies a GDate to set it to the last day of the year in which it falls. | |
| void | gnc_gdate_set_prev_year_start (GDate *date) |
| This function modifies a GDate to set it to the first day of the year prior to the one in which it falls. | |
| void | gnc_gdate_set_prev_year_end (GDate *date) |
| This function modifies a GDate to set it to the last day of the year prior to the one in which it falls. | |
| void | gnc_gdate_set_fiscal_year_start (GDate *date, const GDate *year_end) |
| This function modifies a GDate to set it to the first day of the fiscal year in which it falls. | |
| void | gnc_gdate_set_fiscal_year_end (GDate *date, const GDate *year_end) |
| This function modifies a GDate to set it to the last day of the fiscal year in which it falls. | |
| void | gnc_gdate_set_prev_fiscal_year_start (GDate *date, const GDate *year_end) |
| This function modifies a GDate to set it to the first day of the fiscal year prior to the one in which it falls. | |
| void | gnc_gdate_set_prev_fiscal_year_end (GDate *date, const GDate *year_end) |
| This function modifies a GDate to set it to the last day of the fiscal year prior to the one in which it falls. | |
Variables | |
| const char * | gnc_default_strftime_date_format |
| The default date format for use with strftime. | |
GValue | |
| #define | GNC_TYPE_TIME64 (time64_get_type ()) |
| GType | time64_get_type (void) |
Today's Date | |
| #define | MIN_BUF_LEN 10 |
| void | gnc_tm_get_today_start (struct tm *tm) |
| The gnc_tm_get_today_start() routine takes a pointer to a struct tm and fills it in with the first second of the today. | |
| void | gnc_tm_get_today_neutral (struct tm *tm) |
| The gnc_tm_get_today_start() routine takes a pointer to a struct tm and fills it in with the timezone neutral time (10:59:00Z). | |
| void | gnc_tm_get_today_end (struct tm *tm) |
| The gnc_tm_get_today_end() routine takes a pointer to a struct tm and fills it in with the last second of the today. | |
| time64 | gnc_time64_get_today_start (void) |
| The gnc_time64_get_today_start() routine returns a time64 value corresponding to the first second of today. | |
| time64 | gnc_time64_get_today_end (void) |
| The gnc_time64_get_today_end() routine returns a time64 value corresponding to the last second of today. | |
| char * | gnc_date_timestamp (void) |
| Make a timestamp in YYYYMMDDHHMMSS format. | |
| void | gnc_dow_abbrev (gchar *buf, int buf_len, int dow) |
| Localized DOW abbreviation. | |
Date and Time handling routines.
Definition in file gnc-date.h.