2024-12-21 10:04:04 +08:00
///////////////////////////////////////////////////////////////////
// INCLUDE
///////////////////////////////////////////////////////////////////
# include "STDAFX.H"
# include "TIMESET.H"
# include <TIME.H>
# include "COMMONMACROS.H"
# include "BASESET.H"
# include "DEBUGUTIL.H"
# include "SAFESTRINGMACROS.H"
# if defined(_US)
# include <sys/timeb.h>
# endif // #if defined(_US)
# ifdef _DEBUG
# define new new(_NORMAL_BLOCK,__FILE__,__LINE__)
# endif
///////////////////////////////////////////////////////////////////
// IMPLEMENTATION
///////////////////////////////////////////////////////////////////
//*---------------------------------------------------------------
// TYPE : FUNCTION
// NAME : CTimeSet::CTimeSet
//*---------------------------------------------------------------
// DESC : <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
// PARM : N/A
// RETV : N/A
// PRGM : B4nFter
//*---------------------------------------------------------------
CTimeSet : : CTimeSet ( )
{
Reset ( ) ;
}
//*---------------------------------------------------------------
// TYPE : FUNCTION
// NAME : CTimeSet::CTimeSet
//*---------------------------------------------------------------
// DESC : <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
// PARM : N/A
// RETV : N/A
// PRGM : B4nFter
//*---------------------------------------------------------------
CTimeSet : : CTimeSet ( WORD wYear , WORD wMonth , WORD wDay , WORD wHour , WORD wMinute , WORD wSecond )
{
Set ( wYear , wMonth , wDay , wHour , wMinute , wSecond ) ;
}
CTimeSet : : CTimeSet ( const __time32_t & pTime , bool pIsLocal )
{
Set ( pTime , pIsLocal ) ;
}
CTimeSet : : CTimeSet ( const __time64_t & pTime , bool pIsLocal )
{
Set ( pTime , pIsLocal ) ;
}
CTimeSet : : CTimeSet ( const char * szTime , bool pIsLocal )
{
char szYear [ 5 ] = { 0 , } ;
char szMonth [ 3 ] = { 0 , } ;
char szDay [ 3 ] = { 0 , } ;
char szHour [ 3 ] = { 0 , } ;
char szMin [ 3 ] = { 0 , } ;
int nYear = 0 ;
int nMonth = 0 ;
int nDay = 0 ;
int nHour = 0 ;
int nMin = 0 ;
sscanf_s ( szTime , " %4s%2s%2s%2s%2s " ,
szYear , sizeof ( szYear ) ,
szMonth , sizeof ( szMonth ) ,
szDay , sizeof ( szDay ) ,
szHour , sizeof ( szHour ) ,
szMin , sizeof ( szMin ) ) ;
nYear = atoi ( szYear ) ;
nMonth = atoi ( szMonth ) ;
nDay = atoi ( szDay ) ;
nHour = atoi ( szHour ) ;
nMin = atoi ( szMin ) ;
Set ( nYear , nMonth , nDay , nHour , nMin , 0 ) ;
}
//*---------------------------------------------------------------
// TYPE : FUNCTION
// NAME : CTimeSet::CTimeSet
//*---------------------------------------------------------------
// DESC : <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
// PARM : N/A
// RETV : N/A
// PRGM : B4nFter
//*---------------------------------------------------------------
CTimeSet : : CTimeSet ( const FILETIME & stTime )
{
Set ( stTime ) ;
}
//*---------------------------------------------------------------
// TYPE : FUNCTION
// NAME : CTimeSet::CTimeSet
//*---------------------------------------------------------------
// DESC : <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
// PARM : N/A
// RETV : N/A
// PRGM : B4nFter
//*---------------------------------------------------------------
CTimeSet : : CTimeSet ( const SYSTEMTIME & stTime )
{
Set ( stTime ) ;
}
//*---------------------------------------------------------------
// TYPE : FUNCTION
// NAME : CTimeSet::CTimeSet
//*---------------------------------------------------------------
// DESC : <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
// PARM : N/A
// RETV : N/A
// PRGM : B4nFter
//*---------------------------------------------------------------
CTimeSet : : CTimeSet ( const DBTIMESTAMP & stTime )
{
Set ( stTime ) ;
}
//*---------------------------------------------------------------
// TYPE : FUNCTION
// NAME : CTimeSet::Reset
//*---------------------------------------------------------------
// DESC : <20> ð<EFBFBD> <20> <> ü <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> (<28> <> <EFBFBD> <EFBFBD> <EFBFBD> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> )
// PARM : N/A
// RETV : N/A
// PRGM : B4nFter
//*---------------------------------------------------------------
VOID CTimeSet : : Reset ( )
{
: : GetLocalTime ( & m_stLocalTime ) ;
memset ( & m_stDbTimeStamp , 0 , sizeof ( m_stDbTimeStamp ) ) ;
memset ( & m_DBTimeStampStruct , 0 , sizeof ( m_DBTimeStampStruct ) ) ;
}
//*---------------------------------------------------------------
// TYPE : FUNCTION
// NAME : CTimeSet::Set
//*---------------------------------------------------------------
// DESC : <20> ð<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
// PARM : 1 . wYear - <20> <>
// 2 . wMonth - <20> <>
// 3 . wDay - <20> <>
// 4 . wHour - <20> <>
// 5 . wMinute - <20> <>
// 6 . wSecond - <20> <>
// RETV : N/A
// PRGM : B4nFter
//*---------------------------------------------------------------
VOID CTimeSet : : Set ( WORD wYear , WORD wMonth , WORD wDay , WORD wHour , WORD wMinute , WORD wSecond )
{
m_stLocalTime . wYear = wYear ;
m_stLocalTime . wMonth = wMonth ;
m_stLocalTime . wDay = wDay ;
m_stLocalTime . wDayOfWeek = 0 ;
m_stLocalTime . wHour = wHour ;
m_stLocalTime . wMinute = wMinute ;
m_stLocalTime . wSecond = wSecond ;
m_stLocalTime . wMilliseconds = 0 ;
}
VOID CTimeSet : : Set ( const __time32_t & pTime , bool pIsLocal )
{
tm stTm ;
// ::memset(&stTm, 0, sizeof(stTm)); // <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> (<28> <> <EFBFBD> <EFBFBD> <20> ּ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> )
if ( pIsLocal ) {
ConvertTimeT32ToTm_LC ( pTime , & stTm ) ;
}
else {
ConvertTimeT32ToTm_GM ( pTime , & stTm ) ;
}
m_stLocalTime . wYear = stTm . tm_year ;
m_stLocalTime . wMonth = stTm . tm_mon ;
m_stLocalTime . wDay = stTm . tm_mday ;
m_stLocalTime . wDayOfWeek = 0 ;
m_stLocalTime . wHour = stTm . tm_hour ;
m_stLocalTime . wMinute = stTm . tm_min ;
m_stLocalTime . wSecond = stTm . tm_sec ;
m_stLocalTime . wMilliseconds = 0 ;
}
VOID CTimeSet : : Set ( const __time64_t & pTime , bool pIsLocal )
{
tm stTm ;
// ::memset(&stTm, 0, sizeof(stTm)); // <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> (<28> <> <EFBFBD> <EFBFBD> <20> ּ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> )
if ( pIsLocal ) {
ConvertTimeT64ToTm_LC ( pTime , & stTm ) ;
}
else {
ConvertTimeT64ToTm_GM ( pTime , & stTm ) ;
}
m_stLocalTime . wYear = stTm . tm_year ;
m_stLocalTime . wMonth = stTm . tm_mon ;
m_stLocalTime . wDay = stTm . tm_mday ;
m_stLocalTime . wDayOfWeek = 0 ;
m_stLocalTime . wHour = stTm . tm_hour ;
m_stLocalTime . wMinute = stTm . tm_min ;
m_stLocalTime . wSecond = stTm . tm_sec ;
m_stLocalTime . wMilliseconds = 0 ;
}
//*---------------------------------------------------------------
// TYPE : FUNCTION
// NAME : CTimeSet::Set
//*---------------------------------------------------------------
// DESC : <20> ð<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
// PARM : 1 . stTime - FILETIME <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD>
// RETV : N/A
// PRGM : B4nFter
//*---------------------------------------------------------------
VOID CTimeSet : : Set ( const FILETIME & stTime )
{
FILETIME stFileTime ;
: : FileTimeToLocalFileTime ( & stTime , & stFileTime ) ;
: : FileTimeToSystemTime ( & stFileTime , & m_stLocalTime ) ;
}
//*---------------------------------------------------------------
// TYPE : FUNCTION
// NAME : CTimeSet::Set
//*---------------------------------------------------------------
// DESC : <20> ð<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
// PARM : 1 . stTime - SYSTEMTIME <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD>
// RETV : N/A
// PRGM : B4nFter
//*---------------------------------------------------------------
VOID CTimeSet : : Set ( const SYSTEMTIME & stTime )
{
m_stLocalTime = stTime ;
}
//*---------------------------------------------------------------
// TYPE : FUNCTION
// NAME : CTimeSet::Set
//*---------------------------------------------------------------
// DESC : <20> ð<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
// PARM : 1 . stTime - DBTIMESTAMP <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD>
// RETV : N/A
// PRGM : B4nFter
//*---------------------------------------------------------------
VOID CTimeSet : : Set ( const DBTIMESTAMP & stTime )
{
FILETIME stFileTime ;
ConvertDbTimeStampToFileTime ( & stTime , & stFileTime ) ;
: : FileTimeToSystemTime ( & stFileTime , & m_stLocalTime ) ;
}
//*---------------------------------------------------------------
// TYPE : FUNCTION
// NAME : CTimeSet::GetTimeTo
//*---------------------------------------------------------------
// DESC : <20> <> <EFBFBD> <EFBFBD> <20> <> ü<EFBFBD> <C3BC> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ڷ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> Ư<> <C6AF> <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <20> <> ȯ
// PARM : 1 . eDayOfWeek - <20> <>
// 2 . wHour - <20> <>
// 3 . wMinute - <20> <>
// 4 . wSecond - <20> <>
// RETV : <20> <> <EFBFBD> ڷ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> Ư<> <C6AF> <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <>
// PRGM : B4nFter
//*---------------------------------------------------------------
DWORD CTimeSet : : GetTimeTo ( EF_DAYOFWEEK eDayOfWeek , WORD wHour , WORD wMinute , WORD wSecond )
{
DN_ASSERT ( ( EV_DAYOFWEEK_SUN < = eDayOfWeek ) & & ( eDayOfWeek < = EV_DAYOFWEEK_SAT ) , " Invalid! " ) ;
DN_ASSERT ( wHour < 24 , " Invalid! " ) ;
DN_ASSERT ( wMinute < 60 , " Invalid! " ) ;
DN_ASSERT ( wSecond < 60 , " Invalid! " ) ;
DWORD dwCurSec = ( m_stLocalTime . wSecond ) + ( m_stLocalTime . wMinute * 60 ) + ( m_stLocalTime . wHour * 60 * 60 ) + ( m_stLocalTime . wDayOfWeek * 60 * 60 * 24 ) ;
DWORD dwArgSec = ( wSecond ) + ( wMinute * 60 ) + ( wHour * 60 * 60 ) + ( eDayOfWeek * 60 * 60 * 24 ) ;
if ( dwCurSec < dwArgSec ) {
return ( ( dwArgSec - dwCurSec ) * 1000 ) ;
}
else if ( dwArgSec < dwCurSec ) {
return ( ( 7 * 24 * 60 * 60 - dwCurSec + dwArgSec ) * 1000 ) ;
}
else {
return ( 0 ) ;
}
}
//*---------------------------------------------------------------
// TYPE : FUNCTION
// NAME : CTimeSet::GetTimeTo
//*---------------------------------------------------------------
// DESC : <20> <> <EFBFBD> <EFBFBD> <20> <> ü<EFBFBD> <C3BC> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ڷ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> Ư<> <C6AF> <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <20> <> ȯ
// PARM : 1 . wHour - <20> <>
// 2 . wMinute - <20> <>
// 3 . wSecond - <20> <>
// RETV : <20> <> <EFBFBD> ڷ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> Ư<> <C6AF> <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <>
// PRGM : B4nFter
//*---------------------------------------------------------------
DWORD CTimeSet : : GetTimeTo ( WORD wHour , WORD wMinute , WORD wSecond )
{
DN_ASSERT ( wHour < 24 , " Invalid! " ) ;
DN_ASSERT ( wMinute < 60 , " Invalid! " ) ;
DN_ASSERT ( wSecond < 60 , " Invalid! " ) ;
DWORD dwCurSec = ( m_stLocalTime . wSecond ) + ( m_stLocalTime . wMinute * 60 ) + ( m_stLocalTime . wHour * 60 * 60 ) ;
DWORD dwArgSec = ( wSecond ) + ( wMinute * 60 ) + ( wHour * 60 * 60 ) ;
if ( dwCurSec < dwArgSec ) {
return ( ( dwArgSec - dwCurSec ) * 1000 ) ;
}
else if ( dwArgSec < dwCurSec ) {
return ( ( 24 * 60 * 60 - dwCurSec + dwArgSec ) * 1000 ) ;
}
else {
return ( 0 ) ;
}
}
//*---------------------------------------------------------------
// TYPE : FUNCTION
// NAME : CTimeSet::GetTimeTo
//*---------------------------------------------------------------
// DESC : <20> <> <EFBFBD> <EFBFBD> <20> <> ü<EFBFBD> <C3BC> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ڷ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> Ư<> <C6AF> <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <20> <> ȯ
// PARM : 1 . wMinute - <20> <>
// 2 . wSecond - <20> <>
// RETV : <20> <> <EFBFBD> ڷ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> Ư<> <C6AF> <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <>
// PRGM : B4nFter
//*---------------------------------------------------------------
DWORD CTimeSet : : GetTimeTo ( WORD wMinute , WORD wSecond )
{
DN_ASSERT ( wMinute < 60 , " Invalid! " ) ;
DN_ASSERT ( wSecond < 60 , " Invalid! " ) ;
DWORD dwCurSec = ( m_stLocalTime . wSecond ) + ( m_stLocalTime . wMinute * 60 ) ;
DWORD dwArgSec = ( wSecond ) + ( wMinute * 60 ) ;
if ( dwCurSec < dwArgSec ) {
return ( ( dwArgSec - dwCurSec ) * 1000 ) ;
}
else if ( dwArgSec < dwCurSec ) {
return ( ( 60 * 60 - dwCurSec + dwArgSec ) * 1000 ) ;
}
else {
return ( 0 ) ;
}
}
//*---------------------------------------------------------------
// TYPE : FUNCTION
// NAME : CTimeSet::CompareFileTime
//*---------------------------------------------------------------
// DESC : <20> <> <20> <> <EFBFBD> <EFBFBD> FILETIME <20> ð<EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ū<> <C5AB> <20> <> ȯ
// PARM : 1 . stFileTime1 - FILETIME <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> 1
// 2 . stFileTime2 - FILETIME <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> 2
// RETV : -1 : stFileTime1 <20> <> ŭ / 0 : <20> <> <20> <> <20> <> <EFBFBD> <EFBFBD> / 1 : stFileTime2 <20> <> ŭ
// PRGM : B4nFter
//*---------------------------------------------------------------
INT CTimeSet : : CompareFileTime ( const FILETIME & stFileTime1 , const FILETIME & stFileTime2 )
{
return ( : : CompareFileTime ( & stFileTime1 , & stFileTime2 ) ) ;
}
//*---------------------------------------------------------------
// TYPE : FUNCTION
// NAME : CTimeSet::CheckIntegrity
//*---------------------------------------------------------------
// DESC : <20> <> ü<EFBFBD> <C3BC> <20> <> <EFBFBD> <EFBFBD> <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> Ἲ üũ
// PARM : N/A
// RETV : TRUE - <20> <> <EFBFBD> <EFBFBD> / FALSE - <20> <> <EFBFBD> <EFBFBD>
// PRGM : B4nFter
//*---------------------------------------------------------------
BOOL CTimeSet : : CheckIntegrity ( )
{
if ( ! m_stLocalTime . wMonth | | m_stLocalTime . wMonth > 12 ) { return FALSE ; }
if ( m_stLocalTime . wDayOfWeek > 6 ) { return FALSE ; }
if ( ! m_stLocalTime . wDay | | m_stLocalTime . wDay > 31 ) { return FALSE ; }
if ( m_stLocalTime . wHour > 24 ) { return FALSE ; }
if ( m_stLocalTime . wMinute > 60 ) { return FALSE ; }
if ( m_stLocalTime . wSecond > 60 ) { return FALSE ; }
if ( m_stLocalTime . wMilliseconds > 999 ) { return FALSE ; }
return TRUE ;
}
//*---------------------------------------------------------------
// TYPE : FUNCTION
// NAME : CTimeSet::AddSecond
//*---------------------------------------------------------------
// DESC : <20> <> <EFBFBD> <EFBFBD> <20> <> ü<EFBFBD> <C3BC> <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> N <20> ʸ<EFBFBD> ŭ <20> <> <EFBFBD> <EFBFBD>
// PARM : 1 . i64Second - <20> <> (<28> <> )
// RETV : N/A
// PRGM : B4nFter
//*---------------------------------------------------------------
VOID CTimeSet : : AddSecond ( INT64 i64Second )
{
DN_ASSERT ( 0 ! = i64Second , " Invalid! " ) ;
FILETIME stFileTime ;
: : SystemTimeToFileTime ( & m_stLocalTime , & stFileTime ) ;
ULARGE_INTEGER uValue ;
uValue . LowPart = stFileTime . dwLowDateTime ;
uValue . HighPart = stFileTime . dwHighDateTime ;
uValue . QuadPart + = ( i64Second * 10000000 ) ; // 100-nano<6E> <6F> <20> <> ȯ
stFileTime . dwLowDateTime = uValue . LowPart ;
stFileTime . dwHighDateTime = uValue . HighPart ;
: : FileTimeToSystemTime ( & stFileTime , & m_stLocalTime ) ;
}
//*---------------------------------------------------------------
// TYPE : FUNCTION
// NAME : CTimeSet::operator-
//*---------------------------------------------------------------
// DESC : <20> <> <EFBFBD> <EFBFBD> <20> <> ü<EFBFBD> <C3BC> <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ٸ<EFBFBD> <20> ð<EFBFBD> <C3B0> <EFBFBD> ü<EFBFBD> <C3BC> <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <>
// PARM : 1 . Time - <20> ð<EFBFBD> <C3B0> <EFBFBD> ü
// RETV : <20> <> <EFBFBD> <EFBFBD> <20> <> ü<EFBFBD> <C3BC> <EFBFBD> <EFBFBD> <20> ٸ<EFBFBD> <20> <> ü<EFBFBD> <C3BC> <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> (<28> <> <EFBFBD> <EFBFBD> :<3A> <> )
// PRGM : B4nFter
//*---------------------------------------------------------------
INT64 CTimeSet : : operator - ( const CTimeSet & pTime ) const
{
FILETIME stFileTime ;
: : SystemTimeToFileTime ( & m_stLocalTime , & stFileTime ) ;
LARGE_INTEGER lValue1 ;
lValue1 . LowPart = stFileTime . dwLowDateTime ;
lValue1 . HighPart = static_cast < LONG > ( stFileTime . dwHighDateTime ) ;
: : SystemTimeToFileTime ( & pTime . m_stLocalTime , & stFileTime ) ;
LARGE_INTEGER lValue2 ;
lValue2 . LowPart = stFileTime . dwLowDateTime ;
lValue2 . HighPart = static_cast < LONG > ( stFileTime . dwHighDateTime ) ;
lValue1 . QuadPart / = 10000000 ; // 100-nano<6E> <6F> <20> ʷ<EFBFBD> <20> <> ȯ.
lValue2 . QuadPart / = 10000000 ;
return ( static_cast < INT64 > ( lValue1 . QuadPart - lValue2 . QuadPart ) ) ;
}
//*---------------------------------------------------------------
// TYPE : FUNCTION
// NAME : CTimeSet::GetTimeT32_LC
//*---------------------------------------------------------------
// DESC : <20> <> <EFBFBD> <EFBFBD> <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> __time32_t <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ȯ
// PARM : N/A
// RETV : __time32_t <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD>
// PRGM : B4nFter
// P.S.>
// - _mktime32() <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ϸ<EFBFBD> <20> ̰<EFBFBD> <CCB0> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> ý<EFBFBD> <C3BD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ½ð<C2BD> <C3B0> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ȯ
// - <20> ½ð<C2BD> (Calendar Value) <20> <> ȯ<> 溯<EFBFBD> <E6BAAF> TZ <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> (ex> <20> <> <EFBFBD> ѹα <D1B9> TZ = GMT - 09:00:00)
//*---------------------------------------------------------------
__time32_t CTimeSet : : GetTimeT32_LC ( ) const
{
tm stTm ;
// ::memset(&stTm, 0, sizeof(stTm)); // <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> (<28> <> <EFBFBD> <EFBFBD> <20> ּ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> )
stTm . tm_year = m_stLocalTime . wYear - DF_TM_YEAR_EPOCH ;
stTm . tm_mon = m_stLocalTime . wMonth - 1 ;
stTm . tm_mday = m_stLocalTime . wDay ;
stTm . tm_hour = m_stLocalTime . wHour ;
stTm . tm_min = m_stLocalTime . wMinute ;
stTm . tm_sec = m_stLocalTime . wSecond ;
# if defined(_US)
_timeb summertime ;
_ftime ( & summertime ) ;
stTm . tm_isdst = summertime . dstflag ;
# else
stTm . tm_isdst = 0 ; // Seriously, i don't know.
# endif
return ( : : _mktime32 ( & stTm ) ) ;
}
//*---------------------------------------------------------------
// TYPE : FUNCTION
// NAME : CTimeSet::GetTimeT64_LC
//*---------------------------------------------------------------
// DESC : <20> <> <EFBFBD> <EFBFBD> <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> __time64_t <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ȯ
// PARM : N/A
// RETV : __time64_t <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD>
// PRGM : B4nFter
// P.S.>
// - _mktime64() <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ϸ<EFBFBD> <20> ̰<EFBFBD> <CCB0> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> ý<EFBFBD> <C3BD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ½ð<C2BD> <C3B0> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ȯ
// - <20> ½ð<C2BD> (Calendar Value) <20> <> ȯ<> 溯<EFBFBD> <E6BAAF> TZ <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> (ex> <20> <> <EFBFBD> ѹα <D1B9> TZ = GMT - 09:00:00)
//*---------------------------------------------------------------
__time64_t CTimeSet : : GetTimeT64_LC ( ) const
{
tm stTm ;
// ::memset(&stTm, 0, sizeof(stTm)); // <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> (<28> <> <EFBFBD> <EFBFBD> <20> ּ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> )
stTm . tm_year = m_stLocalTime . wYear - DF_TM_YEAR_EPOCH ;
stTm . tm_mon = m_stLocalTime . wMonth - 1 ;
stTm . tm_mday = m_stLocalTime . wDay ;
stTm . tm_hour = m_stLocalTime . wHour ;
stTm . tm_min = m_stLocalTime . wMinute ;
stTm . tm_sec = m_stLocalTime . wSecond ;
# if defined(_US)
__timeb64 summertime ;
_ftime64 ( & summertime ) ;
stTm . tm_isdst = summertime . dstflag ;
# else
stTm . tm_isdst = 0 ; // Seriously, i don't know.
# endif
return ( : : _mktime64 ( & stTm ) ) ;
}
//*---------------------------------------------------------------
// TYPE : FUNCTION
// NAME : CTimeSet::GetTimeT32_GM
//*---------------------------------------------------------------
// DESC : <20> <> <EFBFBD> <EFBFBD> <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> __time32_t <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ȯ
// PARM : N/A
// RETV : __time32_t <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD>
// PRGM : B4nFter
// P.S.>
// - _mkgmtime32() <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ϸ<EFBFBD> <20> ̰<EFBFBD> <CCB0> <EFBFBD> GMT <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ȯ
// - GMT (Greenwich Mean Time) <20> <> <20> <> <EFBFBD> <EFBFBD> <20> <EFBFBD> <D7B8> <EFBFBD> ġ õ<> <C3B5> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ǥ<> ؽ<EFBFBD> (<28> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> C <20> <> Ÿ<EFBFBD> <C5B8> <20> <> <EFBFBD> ̺귯<CCBA> <EAB7AF> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> UTC (Coodinated Universal Time, <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ) <20> <> <20> <> <EFBFBD> ǻ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> ǹ̷<C7B9> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> )
//*---------------------------------------------------------------
__time32_t CTimeSet : : GetTimeT32_GM ( ) const
{
tm stTm ;
// ::memset(&stTm, 0, sizeof(stTm)); // <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> (<28> <> <EFBFBD> <EFBFBD> <20> ּ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> )
stTm . tm_year = m_stLocalTime . wYear - DF_TM_YEAR_EPOCH ;
stTm . tm_mon = m_stLocalTime . wMonth - 1 ;
stTm . tm_mday = m_stLocalTime . wDay ;
stTm . tm_hour = m_stLocalTime . wHour ;
stTm . tm_min = m_stLocalTime . wMinute ;
stTm . tm_sec = m_stLocalTime . wSecond ;
return ( : : _mkgmtime32 ( & stTm ) ) ;
}
//*---------------------------------------------------------------
// TYPE : FUNCTION
// NAME : CTimeSet::GetTimeT64_GM
//*---------------------------------------------------------------
// DESC : <20> <> <EFBFBD> <EFBFBD> <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> __time64_t <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ȯ
// PARM : N/A
// RETV : __time64_t <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD>
// PRGM : B4nFter
// P.S.>
// - _mkgmtime64() <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ϸ<EFBFBD> <20> ̰<EFBFBD> <CCB0> <EFBFBD> GMT <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ȯ
// - GMT (Greenwich Mean Time) <20> <> <20> <> <EFBFBD> <EFBFBD> <20> <EFBFBD> <D7B8> <EFBFBD> ġ õ<> <C3B5> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ǥ<> ؽ<EFBFBD> (<28> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> C <20> <> Ÿ<EFBFBD> <C5B8> <20> <> <EFBFBD> ̺귯<CCBA> <EAB7AF> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> UTC (Coodinated Universal Time, <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ) <20> <> <20> <> <EFBFBD> ǻ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> ǹ̷<C7B9> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> )
//*---------------------------------------------------------------
__time64_t CTimeSet : : GetTimeT64_GM ( ) const
{
tm stTm ;
// ::memset(&stTm, 0, sizeof(stTm)); // <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> (<28> <> <EFBFBD> <EFBFBD> <20> ּ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> )
stTm . tm_year = m_stLocalTime . wYear - DF_TM_YEAR_EPOCH ;
stTm . tm_mon = m_stLocalTime . wMonth - 1 ;
stTm . tm_mday = m_stLocalTime . wDay ;
stTm . tm_hour = m_stLocalTime . wHour ;
stTm . tm_min = m_stLocalTime . wMinute ;
stTm . tm_sec = m_stLocalTime . wSecond ;
return ( : : _mkgmtime64 ( & stTm ) ) ;
}
TIMESTAMP_STRUCT & CTimeSet : : GetDBTimeStampStruct ( )
{
m_DBTimeStampStruct . year = m_stLocalTime . wYear ;
m_DBTimeStampStruct . month = m_stLocalTime . wMonth ;
m_DBTimeStampStruct . day = m_stLocalTime . wDay ;
m_DBTimeStampStruct . hour = m_stLocalTime . wHour ;
m_DBTimeStampStruct . minute = m_stLocalTime . wMinute ;
m_DBTimeStampStruct . second = m_stLocalTime . wSecond ;
m_DBTimeStampStruct . fraction = static_cast < ULONG > ( m_stLocalTime . wMilliseconds * 1000000 ) ;
return m_DBTimeStampStruct ;
}
//*---------------------------------------------------------------
// TYPE : FUNCTION
// NAME : CTimeSet::GetDbTimeStamp
//*---------------------------------------------------------------
// DESC : <20> <> <EFBFBD> <EFBFBD> <20> <> ü<EFBFBD> <C3BC> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> DBTIMESTAMP <20> <> <EFBFBD> ·<EFBFBD> <20> <> ȯ
// PARM : N/A
// RETV : DBTIMESTAMP <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD>
// PRGM : B4nFter
//*---------------------------------------------------------------
DBTIMESTAMP & CTimeSet : : GetDbTimeStamp ( )
{
m_stDbTimeStamp . year = m_stLocalTime . wYear ;
m_stDbTimeStamp . month = m_stLocalTime . wMonth ;
m_stDbTimeStamp . day = m_stLocalTime . wDay ;
m_stDbTimeStamp . hour = m_stLocalTime . wHour ;
m_stDbTimeStamp . minute = m_stLocalTime . wMinute ;
m_stDbTimeStamp . second = m_stLocalTime . wSecond ;
m_stDbTimeStamp . fraction = static_cast < ULONG > ( m_stLocalTime . wMilliseconds * 1000000 ) ;
return m_stDbTimeStamp ;
}
DBDATE & CTimeSet : : GetDBDate ( )
{
m_DBDate . year = m_stLocalTime . wYear ;
m_DBDate . month = m_stLocalTime . wMonth ;
m_DBDate . day = m_stLocalTime . wDay ;
return m_DBDate ;
}
//*---------------------------------------------------------------
// TYPE : FUNCTION
// NAME : CTimeSet::ConvertFileTimeToDbTimeStamp
//*---------------------------------------------------------------
// DESC : Ư<> <C6AF> FILETIME <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> DBTIMESTAMP <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ȯ
// PARM : 1 . lpFileTime - <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD>
// 2 . lpDbTime - DBTIMESTAMP <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ¹<EFBFBD> <C2B9> <EFBFBD>
// RETV : N/A
// PRGM : B4nFter
//*---------------------------------------------------------------
VOID CTimeSet : : ConvertFileTimeToDbTimeStamp ( const FILETIME * lpFileTime , DBTIMESTAMP * lpDbTime )
{
DN_ASSERT ( NULL ! = lpFileTime , " Invalid! " ) ;
DN_ASSERT ( NULL ! = lpDbTime , " Invalid! " ) ;
SYSTEMTIME stSystemTime ;
: : FileTimeToSystemTime ( lpFileTime , & stSystemTime ) ;
lpDbTime - > year = stSystemTime . wYear ;
lpDbTime - > month = stSystemTime . wMonth ;
lpDbTime - > day = stSystemTime . wDay ;
lpDbTime - > hour = stSystemTime . wHour ;
lpDbTime - > minute = stSystemTime . wMinute ;
lpDbTime - > second = stSystemTime . wSecond ;
lpDbTime - > fraction = static_cast < ULONG > ( stSystemTime . wMilliseconds * 1000000 ) ;
if ( lpDbTime - > year < 1900 ) {
lpDbTime - > year = 1900 ;
}
}
//*---------------------------------------------------------------
// TYPE : FUNCTION
// NAME : CTimeSet::ConvertDbTimeStampToFileTime
//*---------------------------------------------------------------
// DESC : Ư<> <C6AF> DBTIMESTAMP <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> FILETIME <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ȯ
// PARM : 1 . lpDbTime - DBTIMESTAMP <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD>
// 2 . lpFileTime - FILETIME <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ¹<EFBFBD> <C2B9> <EFBFBD>
// RETV : N/A
// PRGM : B4nFter
//*---------------------------------------------------------------
VOID CTimeSet : : ConvertDbTimeStampToFileTime ( const DBTIMESTAMP * lpDbTime , FILETIME * lpFileTime )
{
DN_ASSERT ( NULL ! = lpDbTime , " Invalid! " ) ;
DN_ASSERT ( NULL ! = lpFileTime , " Invalid! " ) ;
SYSTEMTIME stSystemTime ;
// ::memset(&stSystemTime, 0, sizeof(stSystemTime)); // <20> Ʒ <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ϰ<EFBFBD> <20> <> <EFBFBD> <EFBFBD>
stSystemTime . wDayOfWeek = 0 ;
stSystemTime . wYear = lpDbTime - > year ;
stSystemTime . wMonth = lpDbTime - > month ;
stSystemTime . wDay = lpDbTime - > day ;
stSystemTime . wHour = lpDbTime - > hour ;
stSystemTime . wMinute = lpDbTime - > minute ;
stSystemTime . wSecond = lpDbTime - > second ;
stSystemTime . wMilliseconds = static_cast < WORD > ( lpDbTime - > fraction / 1000000 ) ;
: : SystemTimeToFileTime ( & stSystemTime , lpFileTime ) ;
}
//*---------------------------------------------------------------
// TYPE : FUNCTION
// NAME : CTimeSet::ConvertTmToTimeT32_LC
//*---------------------------------------------------------------
// DESC : Ư<> <C6AF> tm <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> __time32_t <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ȯ
// PARM : 1 . lpTm - tm <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD>
// RETV : __time32_t <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD>
// PRGM : B4nFter
// P.S.>
// - _mktime32() <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ϸ<EFBFBD> <20> ̰<EFBFBD> <CCB0> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> ý<EFBFBD> <C3BD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ½ð<C2BD> <C3B0> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ȯ
// - <20> ½ð<C2BD> (Calendar Value) <20> <> ȯ<> 溯<EFBFBD> <E6BAAF> TZ <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> (ex> <20> <> <EFBFBD> ѹα <D1B9> TZ = GMT - 09:00:00)
//*---------------------------------------------------------------
__time32_t CTimeSet : : ConvertTmToTimeT32_LC ( tm * lpTm )
{
DN_ASSERT ( NULL ! = lpTm , " Invalid! " ) ;
return ( : : _mktime32 ( lpTm ) ) ;
}
//*---------------------------------------------------------------
// TYPE : FUNCTION
// NAME : CTimeSet::ConvertTmToTimeT64_LC
//*---------------------------------------------------------------
// DESC : Ư<> <C6AF> tm <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> __time64_t <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ȯ
// PARM : 1 . lpTm - tm <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD>
// RETV : __time64_t <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD>
// PRGM : B4nFter
// P.S.>
// - _mktime64() <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ϸ<EFBFBD> <20> ̰<EFBFBD> <CCB0> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> ý<EFBFBD> <C3BD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ½ð<C2BD> <C3B0> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ȯ
// - <20> ½ð<C2BD> (Calendar Value) <20> <> ȯ<> 溯<EFBFBD> <E6BAAF> TZ <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> (ex> <20> <> <EFBFBD> ѹα <D1B9> TZ = GMT - 09:00:00)
//*---------------------------------------------------------------
__time64_t CTimeSet : : ConvertTmToTimeT64_LC ( tm * lpTm )
{
DN_ASSERT ( NULL ! = lpTm , " Invalid! " ) ;
return ( : : _mktime64 ( lpTm ) ) ;
}
//*---------------------------------------------------------------
// TYPE : FUNCTION
// NAME : CTimeSet::ConvertTmToTimeT32_GM
//*---------------------------------------------------------------
// DESC : Ư<> <C6AF> tm <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> __time32_t <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ȯ
// PARM : 1 . lpTm - tm <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD>
// RETV : __time32_t <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD>
// PRGM : B4nFter
// P.S.>
// - _mkgmtime32() <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ϸ<EFBFBD> <20> ̰<EFBFBD> <CCB0> <EFBFBD> GMT <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ȯ
// - GMT (Greenwich Mean Time) <20> <> <20> <> <EFBFBD> <EFBFBD> <20> <EFBFBD> <D7B8> <EFBFBD> ġ õ<> <C3B5> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ǥ<> ؽ<EFBFBD> (<28> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> C <20> <> Ÿ<EFBFBD> <C5B8> <20> <> <EFBFBD> ̺귯<CCBA> <EAB7AF> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> UTC (Coodinated Universal Time, <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ) <20> <> <20> <> <EFBFBD> ǻ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> ǹ̷<C7B9> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> )
//*---------------------------------------------------------------
__time32_t CTimeSet : : ConvertTmToTimeT32_GM ( tm * lpTm )
{
DN_ASSERT ( NULL ! = lpTm , " Invalid! " ) ;
return ( : : _mkgmtime32 ( lpTm ) ) ;
}
//*---------------------------------------------------------------
// TYPE : FUNCTION
// NAME : CTimeSet::ConvertTmToTimeT64_GM
//*---------------------------------------------------------------
// DESC : Ư<> <C6AF> tm <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> __time64_t <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ȯ
// PARM : 1 . lpTm - tm <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD>
// RETV : __time64_t <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD>
// PRGM : B4nFter
// P.S.>
// - _mkgmtime64() <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ϸ<EFBFBD> <20> ̰<EFBFBD> <CCB0> <EFBFBD> GMT <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ȯ
// - GMT (Greenwich Mean Time) <20> <> <20> <> <EFBFBD> <EFBFBD> <20> <EFBFBD> <D7B8> <EFBFBD> ġ õ<> <C3B5> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ǥ<> ؽ<EFBFBD> (<28> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> C <20> <> Ÿ<EFBFBD> <C5B8> <20> <> <EFBFBD> ̺귯<CCBA> <EAB7AF> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> UTC (Coodinated Universal Time, <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ) <20> <> <20> <> <EFBFBD> ǻ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> ǹ̷<C7B9> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> )
//*---------------------------------------------------------------
__time64_t CTimeSet : : ConvertTmToTimeT64_GM ( tm * lpTm )
{
DN_ASSERT ( NULL ! = lpTm , " Invalid! " ) ;
return ( : : _mkgmtime64 ( lpTm ) ) ;
}
//*---------------------------------------------------------------
// TYPE : FUNCTION
// NAME : CTimeSet::ConvertDbTimeStampToTimeT32_LC
//*---------------------------------------------------------------
// DESC : Ư<> <C6AF> DBTIMESTAMP <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> __time32_t <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ȯ
// PARM : 1 . lpDbTime - DBTIMESTAMP <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD>
// RETV : __time32_t <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD>
// PRGM : B4nFter
// P.S.>
// - _mktime32() <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ϸ<EFBFBD> <20> ̰<EFBFBD> <CCB0> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> ý<EFBFBD> <C3BD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ½ð<C2BD> <C3B0> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ȯ
// - <20> ½ð<C2BD> (Calendar Value) <20> <> ȯ<> 溯<EFBFBD> <E6BAAF> TZ <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> (ex> <20> <> <EFBFBD> ѹα <D1B9> TZ = GMT - 09:00:00)
//*---------------------------------------------------------------
__time32_t CTimeSet : : ConvertDbTimeStampToTimeT32_LC ( const DBTIMESTAMP * lpDbTime )
{
DN_ASSERT ( NULL ! = lpDbTime , " Invalid! " ) ;
tm stTm ;
// ::memset(&stTm, 0, sizeof(stTm)); // <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> (<28> <> <EFBFBD> <EFBFBD> <20> ּ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> )
stTm . tm_year = lpDbTime - > year - DF_TM_YEAR_EPOCH ;
stTm . tm_mon = lpDbTime - > month - 1 ;
stTm . tm_mday = lpDbTime - > day ;
stTm . tm_hour = lpDbTime - > hour ;
stTm . tm_min = lpDbTime - > minute ;
stTm . tm_sec = lpDbTime - > second ;
# if defined(_US)
_timeb summertime ;
_ftime ( & summertime ) ;
stTm . tm_isdst = summertime . dstflag ;
# else
stTm . tm_isdst = 0 ; // Seriously, i don't know.
# endif
return ( : : _mktime32 ( & stTm ) ) ;
}
//*---------------------------------------------------------------
// TYPE : FUNCTION
// NAME : CTimeSet::ConvertDbTimeStampToTimeT64_LC
//*---------------------------------------------------------------
// DESC : Ư<> <C6AF> DBTIMESTAMP <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> __time64_t <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ȯ
// PARM : 1 . lpDbTime - DBTIMESTAMP <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD>
// RETV : __time64_t <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD>
// PRGM : B4nFter
// P.S.>
// - _mktime64() <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ϸ<EFBFBD> <20> ̰<EFBFBD> <CCB0> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> ý<EFBFBD> <C3BD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ½ð<C2BD> <C3B0> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ȯ
// - <20> ½ð<C2BD> (Calendar Value) <20> <> ȯ<> 溯<EFBFBD> <E6BAAF> TZ <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> (ex> <20> <> <EFBFBD> ѹα <D1B9> TZ = GMT - 09:00:00)
//*---------------------------------------------------------------
__time64_t CTimeSet : : ConvertDbTimeStampToTimeT64_LC ( const DBTIMESTAMP * lpDbTime )
{
DN_ASSERT ( NULL ! = lpDbTime , " Invalid! " ) ;
tm stTm ;
// ::memset(&stTm, 0, sizeof(stTm)); // <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> (<28> <> <EFBFBD> <EFBFBD> <20> ּ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> )
stTm . tm_year = lpDbTime - > year - DF_TM_YEAR_EPOCH ;
stTm . tm_mon = lpDbTime - > month - 1 ;
stTm . tm_mday = lpDbTime - > day ;
stTm . tm_hour = lpDbTime - > hour ;
stTm . tm_min = lpDbTime - > minute ;
stTm . tm_sec = lpDbTime - > second ;
# if defined(_US)
__timeb64 summertime ;
_ftime64 ( & summertime ) ;
stTm . tm_isdst = summertime . dstflag ;
# else
stTm . tm_isdst = 0 ; // Seriously, i don't know.
# endif
return ( : : _mktime64 ( & stTm ) ) ;
}
//*---------------------------------------------------------------
// TYPE : FUNCTION
// NAME : CTimeSet::ConvertDbTimeStampToTimeT32_GM
//*---------------------------------------------------------------
// DESC : Ư<> <C6AF> DBTIMESTAMP <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> __time32_t <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ȯ
// PARM : 1 . lpDbTime - DBTIMESTAMP <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD>
// RETV : __time32_t <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD>
// PRGM : B4nFter
// P.S.>
// - _mkgmtime32() <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ϸ<EFBFBD> <20> ̰<EFBFBD> <CCB0> <EFBFBD> GMT <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ȯ
// - GMT (Greenwich Mean Time) <20> <> <20> <> <EFBFBD> <EFBFBD> <20> <EFBFBD> <D7B8> <EFBFBD> ġ õ<> <C3B5> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ǥ<> ؽ<EFBFBD> (<28> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> C <20> <> Ÿ<EFBFBD> <C5B8> <20> <> <EFBFBD> ̺귯<CCBA> <EAB7AF> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> UTC (Coodinated Universal Time, <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ) <20> <> <20> <> <EFBFBD> ǻ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> ǹ̷<C7B9> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> )
//*---------------------------------------------------------------
__time32_t CTimeSet : : ConvertDbTimeStampToTimeT32_GM ( const DBTIMESTAMP * lpDbTime )
{
DN_ASSERT ( NULL ! = lpDbTime , " Invalid! " ) ;
tm stTm ;
// ::memset(&stTm, 0, sizeof(stTm)); // <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> (<28> <> <EFBFBD> <EFBFBD> <20> ּ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> )
stTm . tm_year = lpDbTime - > year - DF_TM_YEAR_EPOCH ;
stTm . tm_mon = lpDbTime - > month - 1 ;
stTm . tm_mday = lpDbTime - > day ;
stTm . tm_hour = lpDbTime - > hour ;
stTm . tm_min = lpDbTime - > minute ;
stTm . tm_sec = lpDbTime - > second ;
return ( : : _mkgmtime32 ( & stTm ) ) ;
}
//*---------------------------------------------------------------
// TYPE : FUNCTION
// NAME : CTimeSet::ConvertDbTimeStampToTimeT64_GM
//*---------------------------------------------------------------
// DESC : Ư<> <C6AF> DBTIMESTAMP <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> __time64_t <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ȯ
// PARM : 1 . lpDbTime - DBTIMESTAMP <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD>
// RETV : __time64_t <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD>
// PRGM : B4nFter
// P.S.>
// - _mkgmtime64() <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ϸ<EFBFBD> <20> ̰<EFBFBD> <CCB0> <EFBFBD> GMT <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ȯ
// - GMT (Greenwich Mean Time) <20> <> <20> <> <EFBFBD> <EFBFBD> <20> <EFBFBD> <D7B8> <EFBFBD> ġ õ<> <C3B5> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ǥ<> ؽ<EFBFBD> (<28> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> C <20> <> Ÿ<EFBFBD> <C5B8> <20> <> <EFBFBD> ̺귯<CCBA> <EAB7AF> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> UTC (Coodinated Universal Time, <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ) <20> <> <20> <> <EFBFBD> ǻ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> ǹ̷<C7B9> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> )
//*---------------------------------------------------------------
__time64_t CTimeSet : : ConvertDbTimeStampToTimeT64_GM ( const DBTIMESTAMP * lpDbTime )
{
DN_ASSERT ( NULL ! = lpDbTime , " Invalid! " ) ;
tm stTm ;
// ::memset(&stTm, 0, sizeof(stTm)); // <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> (<28> <> <EFBFBD> <EFBFBD> <20> ּ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> )
stTm . tm_year = lpDbTime - > year - DF_TM_YEAR_EPOCH ;
stTm . tm_mon = lpDbTime - > month - 1 ;
stTm . tm_mday = lpDbTime - > day ;
stTm . tm_hour = lpDbTime - > hour ;
stTm . tm_min = lpDbTime - > minute ;
stTm . tm_sec = lpDbTime - > second ;
return ( : : _mkgmtime64 ( & stTm ) ) ;
}
//*---------------------------------------------------------------
// TYPE : FUNCTION
// NAME : CTimeSet::ConvertTimeT32ToTm_LC
//*---------------------------------------------------------------
// DESC : Ư<> <C6AF> __time32_t <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> tm <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ȯ
// PARM : 1 . pTimeT32 - __time32_t <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD>
// 2 . lpTm - tm <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ¹<EFBFBD> <C2B9> <EFBFBD>
// RETV : TRUE - <20> <> <EFBFBD> <EFBFBD> / FALSE - <20> <> <EFBFBD> <EFBFBD>
// PRGM : B4nFter
// P.S.>
// - _localtime32_s() <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ϸ<EFBFBD> <20> ̰<EFBFBD> <CCB0> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> ý<EFBFBD> <C3BD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ½ð<C2BD> <C3B0> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ȯ
// - <20> ½ð<C2BD> (Calendar Value) <20> <> ȯ<> 溯<EFBFBD> <E6BAAF> TZ <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> (ex> <20> <> <EFBFBD> ѹα <D1B9> TZ = GMT - 09:00:00)
//*---------------------------------------------------------------
BOOL CTimeSet : : ConvertTimeT32ToTm_LC ( __time32_t pTimeT32 , tm * lpTm )
{
DN_ASSERT ( NULL ! = lpTm , " Invalid! " ) ;
errno_t aRetVal = : : _localtime32_s ( lpTm , & pTimeT32 ) ;
if ( aRetVal ) {
return FALSE ;
}
lpTm - > tm_year + = DF_TM_YEAR_EPOCH ;
lpTm - > tm_mon + = 1 ;
return TRUE ;
}
//*---------------------------------------------------------------
// TYPE : FUNCTION
// NAME : CTimeSet::ConvertTimeT64ToTm_LC
//*---------------------------------------------------------------
// DESC : Ư<> <C6AF> __time64_t <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> tm <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ȯ
// PARM : 1 . pTimeT64 - __time64_t <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD>
// 2 . lpTm - tm <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ¹<EFBFBD> <C2B9> <EFBFBD>
// RETV : TRUE - <20> <> <EFBFBD> <EFBFBD> / FALSE - <20> <> <EFBFBD> <EFBFBD>
// PRGM : B4nFter
// P.S.>
// - _localtime64_s() <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ϸ<EFBFBD> <20> ̰<EFBFBD> <CCB0> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> ý<EFBFBD> <C3BD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ½ð<C2BD> <C3B0> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ȯ
// - <20> ½ð<C2BD> (Calendar Value) <20> <> ȯ<> 溯<EFBFBD> <E6BAAF> TZ <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> (ex> <20> <> <EFBFBD> ѹα <D1B9> TZ = GMT - 09:00:00)
//*---------------------------------------------------------------
BOOL CTimeSet : : ConvertTimeT64ToTm_LC ( __time64_t pTimeT64 , tm * lpTm )
{
DN_ASSERT ( NULL ! = lpTm , " Invalid! " ) ;
errno_t aRetVal = : : _localtime64_s ( lpTm , & pTimeT64 ) ;
if ( aRetVal ) {
return FALSE ;
}
lpTm - > tm_year + = DF_TM_YEAR_EPOCH ;
lpTm - > tm_mon + = 1 ;
return TRUE ;
}
//*---------------------------------------------------------------
// TYPE : FUNCTION
// NAME : CTimeSet::ConvertTimeT32ToTm_GM
//*---------------------------------------------------------------
// DESC : Ư<> <C6AF> __time32_t <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> tm <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ȯ
// PARM : 1 . pTimeT32 - __time32_t <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD>
// 2 . lpTm - tm <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ¹<EFBFBD> <C2B9> <EFBFBD>
// RETV : TRUE - <20> <> <EFBFBD> <EFBFBD> / FALSE - <20> <> <EFBFBD> <EFBFBD>
// PRGM : B4nFter
// P.S.>
// - _gmtime32_s() <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ϸ<EFBFBD> <20> ̰<EFBFBD> <CCB0> <EFBFBD> GMT <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ȯ
// - GMT (Greenwich Mean Time) <20> <> <20> <> <EFBFBD> <EFBFBD> <20> <EFBFBD> <D7B8> <EFBFBD> ġ õ<> <C3B5> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ǥ<> ؽ<EFBFBD> (<28> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> C <20> <> Ÿ<EFBFBD> <C5B8> <20> <> <EFBFBD> ̺귯<CCBA> <EAB7AF> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> UTC (Coodinated Universal Time, <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ) <20> <> <20> <> <EFBFBD> ǻ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> ǹ̷<C7B9> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> )
//*---------------------------------------------------------------
BOOL CTimeSet : : ConvertTimeT32ToTm_GM ( __time32_t pTimeT32 , tm * lpTm )
{
DN_ASSERT ( NULL ! = lpTm , " Invalid! " ) ;
errno_t aRetVal = : : _gmtime32_s ( lpTm , & pTimeT32 ) ;
if ( aRetVal ) {
return FALSE ;
}
lpTm - > tm_year + = DF_TM_YEAR_EPOCH ;
lpTm - > tm_mon + = 1 ;
return TRUE ;
}
//*---------------------------------------------------------------
// TYPE : FUNCTION
// NAME : CTimeSet::ConvertTimeT64ToTm_GM
//*---------------------------------------------------------------
// DESC : Ư<> <C6AF> __time64_t <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> tm <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ȯ
// PARM : 1 . pTimeT64 - __time64_t <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD>
// 2 . lpTm - tm <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ¹<EFBFBD> <C2B9> <EFBFBD>
// RETV : TRUE - <20> <> <EFBFBD> <EFBFBD> / FALSE - <20> <> <EFBFBD> <EFBFBD>
// PRGM : B4nFter
// P.S.>
// - _gmtime32_s() <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ϸ<EFBFBD> <20> ̰<EFBFBD> <CCB0> <EFBFBD> GMT <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ȯ
// - GMT (Greenwich Mean Time) <20> <> <20> <> <EFBFBD> <EFBFBD> <20> <EFBFBD> <D7B8> <EFBFBD> ġ õ<> <C3B5> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ǥ<> ؽ<EFBFBD> (<28> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> C <20> <> Ÿ<EFBFBD> <C5B8> <20> <> <EFBFBD> ̺귯<CCBA> <EAB7AF> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> UTC (Coodinated Universal Time, <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ) <20> <> <20> <> <EFBFBD> ǻ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> ǹ̷<C7B9> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> )
//*---------------------------------------------------------------
BOOL CTimeSet : : ConvertTimeT64ToTm_GM ( __time64_t pTimeT64 , tm * lpTm )
{
DN_ASSERT ( NULL ! = lpTm , " Invalid! " ) ;
errno_t aRetVal = : : _gmtime64_s ( lpTm , & pTimeT64 ) ;
if ( aRetVal ) {
return FALSE ;
}
lpTm - > tm_year + = DF_TM_YEAR_EPOCH ;
lpTm - > tm_mon + = 1 ;
return TRUE ;
}
//*---------------------------------------------------------------
// TYPE : FUNCTION
// NAME : CTimeSet::ConvertTimeT32ToDbTimeStamp_LC
//*---------------------------------------------------------------
// DESC : Ư<> <C6AF> __time32_t <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> DBTIMESTAMP <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ȯ
// PARM : 1 . pTimeT32 - __time32_t <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD>
// 2 . lpDbTime - DBTIMESTAMP <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ¹<EFBFBD> <C2B9> <EFBFBD>
// RETV : TRUE - <20> <> <EFBFBD> <EFBFBD> / FALSE - <20> <> <EFBFBD> <EFBFBD>
// PRGM : B4nFter
// P.S.>
// - _localtime32_s() <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ϸ<EFBFBD> <20> ̰<EFBFBD> <CCB0> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> ý<EFBFBD> <C3BD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ½ð<C2BD> <C3B0> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ȯ
// - <20> ½ð<C2BD> (Calendar Value) <20> <> ȯ<> 溯<EFBFBD> <E6BAAF> TZ <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> (ex> <20> <> <EFBFBD> ѹα <D1B9> TZ = GMT - 09:00:00)
//*---------------------------------------------------------------
BOOL CTimeSet : : ConvertTimeT32ToDbTimeStamp_LC ( __time32_t pTimeT32 , DBTIMESTAMP * lpDbTime )
{
DN_ASSERT ( NULL ! = lpDbTime , " Invalid! " ) ;
tm stTm ;
errno_t aRetVal = : : _localtime32_s ( & stTm , & pTimeT32 ) ;
if ( aRetVal ) {
return FALSE ;
}
lpDbTime - > year = static_cast < SHORT > ( stTm . tm_year + DF_TM_YEAR_EPOCH ) ;
lpDbTime - > month = static_cast < USHORT > ( stTm . tm_mon + 1 ) ;
lpDbTime - > day = static_cast < USHORT > ( stTm . tm_mday ) ;
lpDbTime - > hour = static_cast < USHORT > ( stTm . tm_hour ) ;
lpDbTime - > minute = static_cast < USHORT > ( stTm . tm_min ) ;
lpDbTime - > second = static_cast < USHORT > ( stTm . tm_sec ) ;
lpDbTime - > fraction = 0 ;
return TRUE ;
}
//*---------------------------------------------------------------
// TYPE : FUNCTION
// NAME : CTimeSet::ConvertTimeT64ToDbTimeStamp_LC
//*---------------------------------------------------------------
// DESC : Ư<> <C6AF> __time64_t <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> DBTIMESTAMP <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ȯ
// PARM : 1 . pTimeT64 - __time64_t <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD>
// 2 . lpDbTime - DBTIMESTAMP <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ¹<EFBFBD> <C2B9> <EFBFBD>
// RETV : TRUE - <20> <> <EFBFBD> <EFBFBD> / FALSE - <20> <> <EFBFBD> <EFBFBD>
// PRGM : B4nFter
// P.S.>
// - _localtime64_s() <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ϸ<EFBFBD> <20> ̰<EFBFBD> <CCB0> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> ý<EFBFBD> <C3BD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ½ð<C2BD> <C3B0> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ȯ
// - <20> ½ð<C2BD> (Calendar Value) <20> <> ȯ<> 溯<EFBFBD> <E6BAAF> TZ <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> (ex> <20> <> <EFBFBD> ѹα <D1B9> TZ = GMT - 09:00:00)
//*---------------------------------------------------------------
BOOL CTimeSet : : ConvertTimeT64ToDbTimeStamp_LC ( __time64_t pTimeT64 , DBTIMESTAMP * lpDbTime )
{
DN_ASSERT ( NULL ! = lpDbTime , " Invalid! " ) ;
tm stTm ;
errno_t aRetVal = : : _localtime64_s ( & stTm , & pTimeT64 ) ;
if ( aRetVal ) {
return FALSE ;
}
lpDbTime - > year = static_cast < SHORT > ( stTm . tm_year + DF_TM_YEAR_EPOCH ) ;
lpDbTime - > month = static_cast < USHORT > ( stTm . tm_mon + 1 ) ;
lpDbTime - > day = static_cast < USHORT > ( stTm . tm_mday ) ;
lpDbTime - > hour = static_cast < USHORT > ( stTm . tm_hour ) ;
lpDbTime - > minute = static_cast < USHORT > ( stTm . tm_min ) ;
lpDbTime - > second = static_cast < USHORT > ( stTm . tm_sec ) ;
lpDbTime - > fraction = 0 ;
return TRUE ;
}
//*---------------------------------------------------------------
// TYPE : FUNCTION
// NAME : CTimeSet::ConvertTimeT32ToDbTimeStamp_GM
//*---------------------------------------------------------------
// DESC : Ư<> <C6AF> __time32_t <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> DBTIMESTAMP <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ȯ
// PARM : 1 . pTimeT32 - __time32_t <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD>
// 2 . lpDbTime - DBTIMESTAMP <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ¹<EFBFBD> <C2B9> <EFBFBD>
// RETV : TRUE - <20> <> <EFBFBD> <EFBFBD> / FALSE - <20> <> <EFBFBD> <EFBFBD>
// PRGM : B4nFter
// P.S.>
// - _gmtime32_s() <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ϸ<EFBFBD> <20> ̰<EFBFBD> <CCB0> <EFBFBD> GMT <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ȯ
// - GMT (Greenwich Mean Time) <20> <> <20> <> <EFBFBD> <EFBFBD> <20> <EFBFBD> <D7B8> <EFBFBD> ġ õ<> <C3B5> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ǥ<> ؽ<EFBFBD> (<28> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> C <20> <> Ÿ<EFBFBD> <C5B8> <20> <> <EFBFBD> ̺귯<CCBA> <EAB7AF> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> UTC (Coodinated Universal Time, <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ) <20> <> <20> <> <EFBFBD> ǻ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> ǹ̷<C7B9> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> )
//*---------------------------------------------------------------
BOOL CTimeSet : : ConvertTimeT32ToDbTimeStamp_GM ( __time32_t pTimeT32 , DBTIMESTAMP * lpDbTime )
{
DN_ASSERT ( NULL ! = lpDbTime , " Invalid! " ) ;
tm stTm ;
errno_t aRetVal = : : _gmtime32_s ( & stTm , & pTimeT32 ) ;
if ( aRetVal ) {
return FALSE ;
}
lpDbTime - > year = static_cast < SHORT > ( stTm . tm_year + DF_TM_YEAR_EPOCH ) ;
lpDbTime - > month = static_cast < USHORT > ( stTm . tm_mon + 1 ) ;
lpDbTime - > day = static_cast < USHORT > ( stTm . tm_mday ) ;
lpDbTime - > hour = static_cast < USHORT > ( stTm . tm_hour ) ;
lpDbTime - > minute = static_cast < USHORT > ( stTm . tm_min ) ;
lpDbTime - > second = static_cast < USHORT > ( stTm . tm_sec ) ;
lpDbTime - > fraction = 0 ;
return TRUE ;
}
//*---------------------------------------------------------------
// TYPE : FUNCTION
// NAME : CTimeSet::ConvertTimeT64ToDbTimeStamp_GM
//*---------------------------------------------------------------
// DESC : Ư<> <C6AF> __time64_t <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> DBTIMESTAMP <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ȯ
// PARM : 1 . pTimeT64 - __time64_t <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD>
// 2 . lpDbTime - DBTIMESTAMP <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ¹<EFBFBD> <C2B9> <EFBFBD>
// RETV : TRUE - <20> <> <EFBFBD> <EFBFBD> / FALSE - <20> <> <EFBFBD> <EFBFBD>
// PRGM : B4nFter
// P.S.>
// - _gmtime32_s() <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ϸ<EFBFBD> <20> ̰<EFBFBD> <CCB0> <EFBFBD> GMT <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ȯ
// - GMT (Greenwich Mean Time) <20> <> <20> <> <EFBFBD> <EFBFBD> <20> <EFBFBD> <D7B8> <EFBFBD> ġ õ<> <C3B5> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ǥ<> ؽ<EFBFBD> (<28> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> C <20> <> Ÿ<EFBFBD> <C5B8> <20> <> <EFBFBD> ̺귯<CCBA> <EAB7AF> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> UTC (Coodinated Universal Time, <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ) <20> <> <20> <> <EFBFBD> ǻ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> ǹ̷<C7B9> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> )
//*---------------------------------------------------------------
BOOL CTimeSet : : ConvertTimeT64ToDbTimeStamp_GM ( __time64_t pTimeT64 , DBTIMESTAMP * lpDbTime )
{
DN_ASSERT ( NULL ! = lpDbTime , " Invalid! " ) ;
tm stTm ;
errno_t aRetVal = : : _gmtime64_s ( & stTm , & pTimeT64 ) ;
if ( aRetVal ) {
return FALSE ;
}
lpDbTime - > year = static_cast < SHORT > ( stTm . tm_year + DF_TM_YEAR_EPOCH ) ;
lpDbTime - > month = static_cast < USHORT > ( stTm . tm_mon + 1 ) ;
lpDbTime - > day = static_cast < USHORT > ( stTm . tm_mday ) ;
lpDbTime - > hour = static_cast < USHORT > ( stTm . tm_hour ) ;
lpDbTime - > minute = static_cast < USHORT > ( stTm . tm_min ) ;
lpDbTime - > second = static_cast < USHORT > ( stTm . tm_sec ) ;
lpDbTime - > fraction = 0 ;
return TRUE ;
}
CTimeSet : : EF_DAYOFWEEK CTimeSet : : CalculateDayOfWeek ( ) // 20100728
{
return ( CTimeSet : : CalculateDayOfWeek ( m_stLocalTime . wYear , m_stLocalTime . wMonth , m_stLocalTime . wDay ) ) ;
}
CTimeSet : : EF_DAYOFWEEK CTimeSet : : CalculateDayOfWeek ( WORD wYear , WORD wMonth , WORD wDay ) // 20100728
{
INT aMonthDays [ ] = { 31 , 28 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 } ; // 12 Month
long aTotal = ( wYear - 1 ) * 365L + ( wYear - 1 ) / 4 - ( wYear - 1 ) / 100 + ( wYear - 1 ) / 400 ;
if ( ! ( wYear % 4 ) & & ( wYear % 100 ) | | ! ( wYear % 400 ) ) {
+ + aMonthDays [ 1 ] ;
}
for ( int aIndex = 0 ; wMonth - 1 > aIndex ; + + aIndex ) {
aTotal + = aMonthDays [ aIndex ] ;
}
aTotal + = wDay ;
return ( static_cast < CTimeSet : : EF_DAYOFWEEK > ( aTotal % 7 ) ) ;
}