1 #ifndef BZS_DB_PROTOCOL_TDAP_MYDATETIME_H
2 #define BZS_DB_PROTOCOL_TDAP_MYDATETIME_H
22 #include <bzs/env/compiler.h>
52 inline myDate(
int ,
bool ) {};
53 void setValue(
int v,
bool btrDate_i =
false);
54 int getValue(
bool btrvValue =
false);
55 char* toString(
char* p,
size_t size,
bool w3_format =
false);
56 myDate& operator=(
const char* p);
58 wchar_t* toString(
wchar_t* p,
size_t size,
bool w3_format =
false);
59 myDate& operator=(
const wchar_t* p);
61 inline __int64 internalValue()
const {
return i; }
62 inline void setInternalValue(__int64 v) { i = (int)v; }
76 unsigned __int64 ms : 24;
77 unsigned __int64 ss : 6;
78 unsigned __int64 nn : 6;
79 unsigned __int64 hh : 10;
80 unsigned __int64 unused : 1;
81 unsigned __int64 sign : 1;
82 unsigned __int64 tmp : 16;
88 inline myTime(
int dec,
bool bigendian) : m_dec(dec),
89 m_bigendian(bigendian){};
90 virtual void setValue(__int64 v,
bool btrTime_i =
false);
91 virtual __int64 getValue(
bool btrTime_i =
false);
92 char* toString(
char* p,
size_t size);
93 myTime& operator=(
const char* p);
95 wchar_t* toString(
wchar_t* p,
size_t size);
96 myTime& operator=(
const wchar_t* p);
98 inline __int64 internalValue()
const {
return i64; }
99 inline void setInternalValue(__int64 v) { i64 = v; }
102 struct PACKAGE maTime :
public myTime
104 virtual void setValue(__int64 v,
bool btrTime_i =
false);
105 virtual __int64 getValue(
bool btrTime_i =
false);
107 inline maTime(
int dec,
bool bigendian) : myTime(dec, bigendian){}
108 maTime& operator=(
const char* p);
110 maTime& operator=(
const wchar_t* p) ;
114 struct PACKAGE myDateTime
124 unsigned __int64 ms : 24;
125 unsigned __int64 ss : 6;
126 unsigned __int64 nn : 6;
127 unsigned __int64 hh : 5;
128 unsigned __int64 dd : 5;
129 unsigned __int64 yymm : 17;
130 unsigned __int64 sign : 1;
135 inline myDateTime(
int dec,
bool bigendian) : m_dec(dec), m_bigendian(bigendian){};
136 virtual void setValue(__int64 v);
137 virtual __int64 getValue();
138 char* toString(
char* p,
size_t size)
const;
139 myDateTime& operator=(
const char* p);
140 char* dateStr(
char* p,
size_t size)
const;
141 char* timeStr(
char* p,
size_t size)
const;
142 void setTime(
const char* p);
145 wchar_t* toString(
wchar_t* p,
size_t size)
const ;
146 myDateTime& operator=(
const wchar_t* p) ;
147 wchar_t* dateStr(
wchar_t* p,
size_t size)
const;
148 wchar_t* timeStr(
wchar_t*,
size_t size)
const;
149 void setTime(
const wchar_t* p);
151 inline __int64 internalValue()
const {
return i64; }
152 inline void setInternalValue(__int64 v) { i64 = v; }
155 struct PACKAGE maDateTime :
public myDateTime
157 virtual void setValue(__int64 v);
158 virtual __int64 getValue();
160 inline maDateTime(
int dec,
bool bigendian) : myDateTime(dec, bigendian){};
161 maDateTime& operator=(
const char* p);
163 maDateTime& operator=(
const wchar_t* p) ;
167 struct PACKAGE myTimeStamp
179 unsigned __int64 ms : 24;
180 unsigned __int64 datetime : 32;
181 unsigned __int64 tmp : 8;
186 inline myTimeStamp(
int dec,
bool bigendian) : m_dec(dec),
187 m_bigendian(bigendian), m_mariadb(false){};
188 void setValue(__int64 v);
190 char* toString(
char* p,
size_t size);
191 myTimeStamp& operator=(
const char* p);
192 char* dateStr(
char* p,
size_t size)
const;
193 char* timeStr(
char* p,
size_t size)
const;
196 wchar_t* toString(
wchar_t* p,
size_t size);
197 myTimeStamp& operator=(
const wchar_t* p);
198 wchar_t* dateStr(
wchar_t* p,
size_t size)
const;
199 wchar_t* timeStr(
wchar_t* p,
size_t size)
const;
201 inline __int64 internalValue()
const {
return i64; }
202 inline void setInternalValue(__int64 v) { i64 = v; }
206 struct PACKAGE maTimeStamp :
public myTimeStamp
209 inline maTimeStamp (
int dec,
bool bigendian) : myTimeStamp(dec, bigendian)
213 inline maTimeStamp& operator=(
const char* p){ myTimeStamp::operator=(p);
return *
this;}
215 inline maTimeStamp& operator=(
const wchar_t* p) { myTimeStamp::operator=(p);
return *
this; }
219 inline int btrdateToMydate(
int btrd)
222 myd.setValue(btrd,
true);
227 inline __int64 btrtimeToMytime(
int btrTime_i,
bool bigendian)
229 myTime myt(4, bigendian);
230 myt.setValue(btrTime_i,
true);
234 inline int mydateToBtrdate(
int myDate_i)
238 return myd.getValue(
true);
241 inline int mytimeToBtrtime(__int64 myTime_i,
bool bigendian,
int dec)
243 myTime myt(dec, bigendian);
245 return (
int)myt.getValue(
true);
249 __int64 getInternalValue(
int dec,
bool bigendian, __int64 value)
253 return t.internalValue();
257 __int64 getStoreValue(
int dec,
bool bigendian, __int64 value)
260 t.setInternalValue(value);
264 #pragma warning(disable : 4244)
265 template <
class T,
typename CHAR>
266 const CHAR* date_time_str(
int dec,
bool bigendian, __int64 value, CHAR* buf,
size_t size)
270 return t.toString(buf, size);
273 template <
class T,
class T2>
274 inline __int64 str_to_64(
int dec,
bool bigendian,
const T2* data)
281 #pragma warning(default : 4244)
294 #endif //BZS_DB_PROTOCOL_TDAP_MYDATETIME_H
pragma_pop
Definition: btrDate.h:107
pragma_pack1
Definition: btrDate.h:36