You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
186 lines
6.1 KiB
186 lines
6.1 KiB
/* /////////////////////////////////////////////////////////////////////////
|
|
* File: examples/c/util/example.c.util.getcurrenttime/example.c.util.getcurrenttime.c
|
|
*
|
|
* Purpose: Implementation file for the example.c.util.getcurrenttime project.
|
|
*
|
|
* Created: 30th August 2008
|
|
* Updated: 27th December 2010
|
|
*
|
|
* Status: Wizard-generated
|
|
*
|
|
* License: (Licensed under the Synesis Software Open License)
|
|
*
|
|
* Copyright (c) 2008-2010, Synesis Software Pty Ltd.
|
|
* All rights reserved.
|
|
*
|
|
* www: http://www.synesis.com.au/software
|
|
*
|
|
* ////////////////////////////////////////////////////////////////////// */
|
|
|
|
/* Pantheios Header Files */
|
|
#include <pantheios/pantheios.h>
|
|
#include <pantheios/util/time/currenttime.h>
|
|
|
|
/* STLSoft Header Files */
|
|
#include <stlsoft/stlsoft.h>
|
|
#include <platformstl/platformstl.h>
|
|
#if defined(PLATFORMSTL_OS_IS_WINDOWS)
|
|
# include <winstl/error/error_functions.h>
|
|
#endif /* OS */
|
|
|
|
/* Standard C Header Files */
|
|
#include <errno.h>
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
|
|
#if defined(_MSC_VER) && \
|
|
defined(_DEBUG)
|
|
# include <crtdbg.h>
|
|
#endif /* _MSC_VER) && _DEBUG */
|
|
|
|
/* ////////////////////////////////////////////////////////////////////// */
|
|
|
|
int main(int argc, char** argv)
|
|
{
|
|
STLSOFT_SUPPRESS_UNUSED(argc);
|
|
STLSOFT_SUPPRESS_UNUSED(argv);
|
|
|
|
/* Using local time with the default representation for the platform */
|
|
{
|
|
PAN_CHAR_T buff[101];
|
|
pan_beutil_time_t tm;
|
|
size_t n;
|
|
|
|
tm.capacity = STLSOFT_NUM_ELEMENTS(buff);
|
|
tm.len = 0;
|
|
tm.str = &buff[0];
|
|
tm.strftimeFmt = NULL;
|
|
|
|
n = pantheios_util_getCurrentTime(&tm, 0);
|
|
|
|
printf("time with 0 flags: %.*s\n", (int)n, buff);
|
|
}
|
|
|
|
/* Using the current user time, with UNIX format */
|
|
{
|
|
PAN_CHAR_T buff[101];
|
|
pan_beutil_time_t tm;
|
|
int flags = 0
|
|
| PANTHEIOS_GETCURRENTTIME_F_USE_UNIX_FORMAT
|
|
;
|
|
size_t n;
|
|
|
|
tm.capacity = STLSOFT_NUM_ELEMENTS(buff);
|
|
tm.len = 0;
|
|
tm.str = &buff[0];
|
|
tm.strftimeFmt = NULL;
|
|
|
|
n = pantheios_util_getCurrentTime(&tm, flags);
|
|
|
|
printf("time, with UNIX format: %.*s\n", (int)n, buff);
|
|
}
|
|
|
|
/* Using system time with the default representation for the platform */
|
|
{
|
|
PAN_CHAR_T buff[101];
|
|
pan_beutil_time_t tm;
|
|
int flags = 0
|
|
| PANTHEIOS_GETCURRENTTIME_F_USE_SYSTEM_TIME
|
|
;
|
|
size_t n;
|
|
|
|
tm.capacity = STLSOFT_NUM_ELEMENTS(buff);
|
|
tm.len = 0;
|
|
tm.str = &buff[0];
|
|
tm.strftimeFmt = NULL;
|
|
|
|
n = pantheios_util_getCurrentTime(&tm, flags);
|
|
|
|
printf("time, using system time: %.*s\n", (int)n, buff);
|
|
}
|
|
|
|
/* Using local time with the default representation for the platform, favouring speed */
|
|
{
|
|
PAN_CHAR_T buff[101];
|
|
pan_beutil_time_t tm;
|
|
int flags = 0
|
|
| PANTHEIOS_GETCURRENTTIME_F_USE_SYSTEM_TIME
|
|
| PANTHEIOS_GETCURRENTTIME_F_FAVOUR_SPEED
|
|
;
|
|
size_t n;
|
|
|
|
tm.capacity = STLSOFT_NUM_ELEMENTS(buff);
|
|
tm.len = 0;
|
|
tm.str = &buff[0];
|
|
tm.strftimeFmt = NULL;
|
|
|
|
n = pantheios_util_getCurrentTime(&tm, flags);
|
|
|
|
printf("time, using system time, favouring speed: %.*s\n", (int)n, buff);
|
|
}
|
|
|
|
/* Using local time with the default representation for the platform, favouring accuracy */
|
|
{
|
|
PAN_CHAR_T buff[101];
|
|
pan_beutil_time_t tm;
|
|
int flags = 0
|
|
| PANTHEIOS_GETCURRENTTIME_F_USE_SYSTEM_TIME
|
|
| PANTHEIOS_GETCURRENTTIME_F_FAVOUR_ACCURACY
|
|
;
|
|
size_t n;
|
|
|
|
tm.capacity = STLSOFT_NUM_ELEMENTS(buff);
|
|
tm.len = 0;
|
|
tm.str = &buff[0];
|
|
tm.strftimeFmt = NULL;
|
|
|
|
n = pantheios_util_getCurrentTime(&tm, flags);
|
|
|
|
printf("time, using system time, favouring accuracy: %.*s\n", (int)n, buff);
|
|
}
|
|
|
|
/* Using local time with the default representation for the platform, microsecond resolution, favouring speed */
|
|
{
|
|
PAN_CHAR_T buff[101];
|
|
pan_beutil_time_t tm;
|
|
int flags = 0
|
|
| PANTHEIOS_GETCURRENTTIME_F_TIME_RES_MICROSECS
|
|
| PANTHEIOS_GETCURRENTTIME_F_FAVOUR_SPEED
|
|
;
|
|
size_t n;
|
|
|
|
tm.capacity = STLSOFT_NUM_ELEMENTS(buff);
|
|
tm.len = 0;
|
|
tm.str = &buff[0];
|
|
tm.strftimeFmt = NULL;
|
|
|
|
n = pantheios_util_getCurrentTime(&tm, flags);
|
|
|
|
printf("time, showing microseconds, favouring speed: %.*s\n", (int)n, buff);
|
|
}
|
|
|
|
/* Using local time with the default representation for the platform, microsecond resolution, favouring accuracy */
|
|
{
|
|
PAN_CHAR_T buff[101];
|
|
pan_beutil_time_t tm;
|
|
int flags = 0
|
|
| PANTHEIOS_GETCURRENTTIME_F_TIME_RES_MICROSECS
|
|
| PANTHEIOS_GETCURRENTTIME_F_FAVOUR_ACCURACY
|
|
;
|
|
size_t n;
|
|
|
|
tm.capacity = STLSOFT_NUM_ELEMENTS(buff);
|
|
tm.len = 0;
|
|
tm.str = &buff[0];
|
|
tm.strftimeFmt = NULL;
|
|
|
|
n = pantheios_util_getCurrentTime(&tm, flags);
|
|
|
|
printf("time, showing microseconds, favouring accuracy: %.*s\n", (int)n, buff);
|
|
}
|
|
|
|
return EXIT_SUCCESS;
|
|
}
|
|
|
|
/* ///////////////////////////// end of file //////////////////////////// */
|