%% options
copyright owner = Dirk Krause
copyright year = 2015-xxxx
license = bsd
%% header
/** @file
Convert timestamp to dkChar string, timestamp either given as set
of components (year, month, day, hour, minute, second), as
pointer to struct tm or as dk4_time_t value.
*/
#ifndef DK4CONF_H_INCLUDED
#include "dk4conf.h"
#endif
#ifndef DK4TYPES_H_INCLUDED
#include "dk4types.h"
#endif
#ifndef DK4ERROR_H_INCLUDED
#include "dk4error.h"
#endif
#ifndef DK4TIME_H_INCLUDED
#include "dk4time.h"
#endif
#ifndef DK4TIMEC_H_INCLUDED
#include "dk4timec.h"
#endif
#ifdef __cplusplus
extern "C" {
#endif
/** Convert timestamp to wchar_t string.
CRT on Windows: Optional.
@param dptr Destination buffer address.
@param dsz Destination buffer size (number of dkChar).
@param format Output format:
DK4_TIMEFORMAT_DATE_TIME for sortable date/time
combination
yyyy-mm-dd hh:mm:ss
(default),
DK4_TIMEFORMAT_DATE_SORTABLE for sortable date
yyyy-mm-dd,
DK4_TIMEFORMAT_DATE_ENGLISH for English style date
mm/dd/yyyy,
DK4_TIMEFORMAT_DATE_GERMAN for German style date
dd.mm.yyyy.
@param year Year.
@param month Month (1 to 12).
@param mday Day within month (1 to 31).
@param hour Hour of day (0 to 23).
@param min Minute within hour (0 to 59).
@param sec Second within minute (0 to 59).
@param erp Error report, may be NULL.
@return 1 on success, 0 on error.
Error codes:
- DK4_E_INVALID_ARGUMENTS
if dptr is NULL or dsz is 0,
- DK4_E_BUFFER_TOO_SMALL
if the buffer is too small.
*/
int
dk4time_to_text(
dkChar *dptr,
size_t dsz,
int format,
unsigned short year,
unsigned short month,
unsigned short mday,
unsigned short hour,
unsigned short min,
unsigned short sec,
dk4_er_t *erp
);
/** Create text representation for a struct tm.
CRT on Windows: Optional.
@param dptr Destination buffer address.
@param dsz Destination buffer size (number of dkChar).
@param tm Struct to convert.
@param erp Error report, may be NULL.
@return 1 on success, 0 on error.
Error codes:
- DK4_E_INVALID_ARGUMENTS
if dptr is NULL or dsz is 0,
- DK4_E_BUFFER_TOO_SMALL
if the buffer is too small.
*/
int
dk4time_convert_to_text(
dkChar *dptr, size_t dsz, const struct tm *tm, dk4_er_t *erp
);
/** Create text representation for timestamp.
CRT on Windows: Required.
@param dptr Destination buffer address.
@param dsz Destination buffer size (Number of dkChar).
@param timer Timestamp to convert.
@param erp Error report, may be NULL.
@return 1 on success, 0 on error.
Error codes:
- DK4_E_INVALID_ARGUMENTS
if dptr is NULL or dsz is 0,
- DK4_E_BUG
if an internal conversion function fails,
- DK4_E_BUFFER_TOO_SMALL
if the buffer is too small.
*/
int
dk4time_as_text(
dkChar *dptr, size_t dsz, const dk4_time_t *timer, dk4_er_t *erp
);
#ifdef __cplusplus
}
#endif
%% module
#include "dk4timedk.h"
#if DK4_CHAR_SIZE > 1
#ifndef DK4TIMEWC_H_INCLUDED
#include "dk4timewc.h"
#endif
#else
#ifndef DK4TIME08_H_INCLUDED
#include "dk4time08.h"
#endif
#endif
int
dk4time_to_text(
dkChar *dptr,
size_t dsz,
int format,
unsigned short year,
unsigned short month,
unsigned short mday,
unsigned short hour,
unsigned short min,
unsigned short sec,
dk4_er_t *erp
)
{
#if DK4_CHAR_SIZE > 1
return (dk4time_to_text_wc(dptr,dsz,format,year,month,mday,hour,min,sec,erp));
#else
return (dk4time_to_text_c8(dptr,dsz,format,year,month,mday,hour,min,sec,erp));
#endif
}
int
dk4time_convert_to_text(
dkChar *dptr, size_t dsz, const struct tm *tm, dk4_er_t *erp
)
{
#if DK4_CHAR_SIZE > 1
return (dk4time_convert_to_text_wc(dptr, dsz, tm, erp));
#else
return (dk4time_convert_to_text_c8(dptr, dsz, tm, erp));
#endif
}
int
dk4time_as_text(
dkChar *dptr, size_t dsz, const dk4_time_t *timer, dk4_er_t *erp
)
{
#if DK4_CHAR_SIZE > 1
return (dk4time_as_text_wc(dptr, dsz, timer, erp));
#else
return (dk4time_as_text_c8(dptr, dsz, timer, erp));
#endif
}