Files
fx/fx.collections/include/fx/collections/datetime.h
T

50 lines
1.5 KiB
C

#ifndef FX_DS_DATETIME_H_
#define FX_DS_DATETIME_H_
#include <ctype.h>
#include <fx/macros.h>
#include <fx/status.h>
FX_DECLS_BEGIN;
#define FX_TYPE_DATETIME (fx_datetime_get_type())
FX_DECLARE_TYPE(fx_datetime);
FX_TYPE_CLASS_DECLARATION_BEGIN(fx_datetime)
FX_TYPE_CLASS_DECLARATION_END(fx_datetime)
typedef enum fx_datetime_format {
FX_DATETIME_FORMAT_RFC3339 = 1,
} fx_datetime_format;
FX_API fx_type fx_datetime_get_type(void);
FX_TYPE_DEFAULT_CONSTRUCTOR(fx_datetime, FX_TYPE_DATETIME);
FX_API fx_datetime *fx_datetime_parse(fx_datetime_format format, const char *s);
FX_API void fx_datetime_to_string(
const fx_datetime *dt,
fx_datetime_format format,
FX_TYPE_FWDREF(fx_stream) * dest);
FX_API bool fx_datetime_is_localtime(const fx_datetime *dt);
FX_API bool fx_datetime_has_date(const fx_datetime *dt);
FX_API bool fx_datetime_has_time(const fx_datetime *dt);
FX_API long fx_datetime_year(const fx_datetime *dt);
FX_API long fx_datetime_month(const fx_datetime *dt);
FX_API long fx_datetime_day(const fx_datetime *dt);
FX_API long fx_datetime_hour(const fx_datetime *dt);
FX_API long fx_datetime_minute(const fx_datetime *dt);
FX_API long fx_datetime_second(const fx_datetime *dt);
FX_API long fx_datetime_subsecond(const fx_datetime *dt);
FX_API bool fx_datetime_zone_offset_is_negative(const fx_datetime *dt);
FX_API long fx_datetime_zone_offset_hour(const fx_datetime *dt);
FX_API long fx_datetime_zone_offset_minute(const fx_datetime *dt);
FX_DECLS_END;
#endif