50 lines
1.5 KiB
C
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
|