time utility More...
#include <ZFTime.h>
Public Types | |
enum | |
![]() | |
enum | |
Public Member Functions | |
virtual const ZFClass * | classData (void) |
get instance's class info | |
virtual zfidentity | objectHashImpl (void) |
see objectHash | |
virtual ZFCompareResult | objectCompareImpl (ZFObject *anotherObj) |
compared by timeValueAppliedTimeZone | |
virtual zfbool | timeValue (const ZFTimeValue &tv) |
set time according to time value | |
virtual const ZFTimeValue & | timeValue () |
access time value | |
virtual zfbool | timeZone (const ZFTimeValue &timeZone) |
set time zone attched to this ZFTime object | |
virtual const ZFTimeValue & | timeZone () |
get time zone attched to this ZFTime object | |
virtual const ZFTimeValue & | timeValueAppliedTimeZone () |
get time value which has been applied by time zone offset | |
virtual zfbool | timeInfo (zfint year, zfuint month, zfuint day, zfuint hour, zfuint minute, zfuint second, zfuint miliSecond, zfuint microSecond, const ZFTimeValue &tz=ZFTime::timeZoneLocal()) |
set time according to time info | |
virtual zfbool | timeInfo (const ZFTimeInfo &ti, const ZFTimeValue &tz=(ZFTime::timeZoneLocal())) |
set time according to time info | |
virtual const ZFTimeInfo & | timeInfo () |
get time info of current time value (by timeValueAppliedTimeZone) | |
virtual zfint | year () |
year since 0000, e.g. 2012 | |
virtual zfuint | month () |
month range in [0, 11] | |
virtual zfuint | day () |
day of month range in [0, 27...30] | |
virtual zfuint | dayOfWeek () |
day of week range in [0, 6], while 0 stands for Sunday | |
virtual zfuint | dayOfYear () |
day of year range in [0, 364/365] | |
virtual zfuint | hour () |
hour range in [0, 23] | |
virtual zfuint | minute () |
minute range in [0, 59] | |
virtual zfuint | second () |
second range in [0, 59] | |
virtual zfuint | miliSecond () |
miliSecond range in [0, 999] | |
virtual zfuint | microSecond () |
microSecond range in [0, 999] | |
![]() | |
zfindex | objectRetainCount (void) |
return the object's retain count | |
void | objectInfoOfInstanceT (zfstring &ret) |
see objectInfoOfInstance | |
zfstring | objectInfoOfInstance (void) |
return a short string describe the object instance | |
void | objectInfoT (zfstring &ret) |
see objectInfo | |
zfstring | objectInfo (void) |
return object info | |
zfidentity | objectHash (void) |
get hash of this object | |
ZFCompareResult | objectCompare (ZFObject *anotherObj) |
compare with anotherObj | |
ZFCompareResult | objectCompareValue (ZFObject *anotherObj) |
explicitly compare object by logical value, see objectCompare | |
virtual zfauto | invoke (const zfstring &methodName) |
util method to perform ZFDI_invoke, do nothing if fail | |
virtual zfauto | invoke (const zfstring &methodName, ZFObject *param0, ZFObject *param1=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param2=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param3=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param4=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param5=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param6=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param7=((ZFObject *const &) _ZFP_ZFMP_DEF)) |
util method to perform ZFDI_invoke, do nothing if fail | |
virtual zfbool | invokeT (zfauto &ret, zfstring *errorHint, const zfstring &methodName, ZFObject *param0=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param1=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param2=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param3=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param4=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param5=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param6=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param7=((ZFObject *const &) _ZFP_ZFMP_DEF)) |
util method to perform ZFDI_invoke, do nothing if fail | |
virtual zfauto | invokeDetail (const zfstring &methodName, const ZFCoreArray< zfauto > ¶ms, zfbool *success=zft_zfnull, zfstring *errorHint=zft_zfnull) |
util method to perform ZFDI_invoke, do nothing if fail | |
zfbool | objectTagExist (void) |
see objectTag, true if this object has tag, and tag can be checked by objectTagGetAllKeyValue | |
void | objectTag (const zfstring &key, ZFObject *tag) |
used to hold a object for app's use, auto retained | |
zfany | objectTag (const zfstring &key) |
see objectTag | |
void | objectTagGetAllKeyValue (ZFCoreArray< zfstring > &allKey, ZFCoreArray< zfauto > &allValue) |
get all key value | |
void | objectTagRemove (const zfstring &key) |
remove tag, same as set tag to null | |
zfauto | objectTagRemoveAndGet (const zfstring &key) |
remove tag, return removed tag or null if not exist | |
void | objectTagRemoveAll (void) |
remove all tag | |
void | observerAdd (zfidentity eventId, const ZFListener &observer, ZFLevel observerLevel=ZFLevelAppNormal) |
see observerNotify | |
void | observerAddForOnce (zfidentity eventId, const ZFListener &observer, ZFLevel observerLevel=ZFLevelAppNormal) |
see observerNotify | |
void | observerRemove (zfidentity eventId, const ZFListener &callback) |
see observerNotify | |
void | observerRemoveAll (zfidentity eventId) |
see observerNotify | |
void | observerRemoveAll (void) |
see observerNotify | |
zfbool | observerHasAdd (void) |
true if any observer has been added | |
zfbool | observerHasAdd (zfidentity eventId) |
true if any observer with eventId has been added | |
void | observerNotify (zfidentity eventId, ZFObject *param0=zft_zfnull, ZFObject *param1=zft_zfnull) |
notify the observer with eventId | |
void | observerNotifyWithSender (ZFObject *customSender, zfidentity eventId, ZFObject *param0=zft_zfnull, ZFObject *param1=zft_zfnull) |
see observerNotify | |
void | observerNotifyReversely (zfidentity eventId, ZFObject *param0=zft_zfnull, ZFObject *param1=zft_zfnull) |
see observerNotify | |
void | observerNotifyReverselyWithSender (ZFObject *customSender, zfidentity eventId, ZFObject *param0=zft_zfnull, ZFObject *param1=zft_zfnull) |
see observerNotify | |
ZFObserver & | observerHolder (void) |
access the internal observer holder | |
void | on (const zfstring &eventName, const ZFListener &observer, ZFLevel observerLevel=ZFLevelAppNormal) |
util to observerAdd | |
void | on (zfidentity eventId, const ZFListener &observer, ZFLevel observerLevel=ZFLevelAppNormal) |
util to observerAdd | |
void | onInit (const ZFListener &impl) |
util for script to achieve chained call | |
void | onDealloc (const ZFListener &impl) |
util for script to achieve chained call | |
zfbool | objectInstanceStateCheck (ZFObjectInstanceState state) |
object instance's state | |
zfbool | objectInitRunning (void) |
util method to check whether ZFObjectInstanceStateOnInit or ZFObjectInstanceStateOnInitFinish running | |
zfbool | objectDeallocRunning (void) |
util method to check whether ZFObjectInstanceStateOnDeallocPrepare or ZFObjectInstanceStateOnDealloc running | |
virtual zfbool | objectIsInternal (void) |
whether this object is internal object or its class is ZFClass::classIsInternal | |
virtual zfbool | objectIsInternalPrivate (void) |
whether this object is internal private object or its class is ZFClass::classIsInternalPrivate | |
![]() | |
zfbool | serializable (void) |
true if object is currently serializable, see ZFSerializable | |
zfbool | serializeFromData (const ZFSerializableData &serializableData, zfstring *outErrorHint=zft_zfnull, ZFSerializableData *outErrorPos=zft_zfnull) |
serialize from data, see ZFSerializable | |
zfbool | serializeToData (ZFSerializableData &serializableData, zfstring *outErrorHint=zft_zfnull, ZFSerializable *refOwner=zft_zfnull) |
serialize to data, see ZFSerializable | |
zfbool | serializeFromString (const zfchar *src, zfindex srcLen=((zfindex) -1), zfstring *errorHint=zft_zfnull) |
serialize from string, return false by default | |
zfbool | serializeToString (zfstring &ret, zfstring *errorHint=zft_zfnull) |
see serializeFromString | |
void | serializablePropertyTypeGetAll (ZFCoreArray< const ZFProperty * > ¬SerializableProperty, ZFCoreArray< const ZFProperty * > &serializableProperty, ZFCoreArray< const ZFProperty * > &embededProperty) |
return a list of each type of property, for debug use only | |
zfstring | serializablePropertyTypeInfo (void) |
return info of serializablePropertyTypeGetAll, for debug use only | |
void | serializableGetAllSerializablePropertyT (ZFCoreArray< const ZFProperty * > &ret) |
see serializableGetAllSerializableProperty | |
ZFCoreArray< const ZFProperty * > | serializableGetAllSerializableProperty (void) |
get all serializable property, usually for debug only, see serializableOnCheckPropertyType | |
void | serializableGetAllSerializableEmbededPropertyT (ZFCoreArray< const ZFProperty * > &ret) |
see serializableGetAllSerializableEmbededProperty | |
ZFCoreArray< const ZFProperty * > | serializableGetAllSerializableEmbededProperty (void) |
get all serializable embeded property, usually for debug only, see serializableOnCheckPropertyType | |
virtual void | serializableInfoT (zfstring &ret) |
get info as a serializable | |
virtual zfstring | serializableInfo (void) |
see serializableInfoT | |
![]() | |
virtual ZFObject * | toObject (void)=0 |
convert to ZFObject type | |
![]() | |
zfautoT< ZFCopyable > | copy (void) |
return a copy of this object | |
void | copyFrom (ZFObject *anotherObj) |
see copy, anotherObj must be same type as this object (by classData), otherwise, do nothing | |
Static Public Member Functions | |
static const ZFClass * | ClassData (void) |
get class info | |
static zfbool | leapYear (zfint year) |
return true if year is leap year | |
static zfint | leapYearBetween (zfint year1, zfint year2) |
return leap year num in range [year1, year2], may return negative value if (year1 > year2) | |
static zftimet | timestamp () |
get timestamp in mili seconds | |
static ZFTimeValue | currentTimeValue () |
return time since ZFTimeInfoZero, negative if before ZFTimeInfoZero | |
static zftimet | currentTime () |
equal to ZFTimeValueToMiliSeconds(currentTimeValue()) | |
static ZFTimeInfo | currentTimeInfo (const ZFTimeValue &localTimeZone=(ZFTime::timeZoneLocal())) |
return current time info, util method to currentTimeValue | |
static zfbool | timeInfoFromTimeValue (ZFTimeInfo &ti, const ZFTimeValue &tv) |
convert time value to time info | |
static zfbool | timeInfoToTimeValue (ZFTimeValue &tv, const ZFTimeInfo &ti) |
convert time info to time value | |
static zfbool | timeInfoToTimeValue (ZFTimeValue &tv, zfint year, zfuint month, zfuint day, zfuint hour, zfuint minute, zfuint second, zfuint miliSecond, zfuint microSecond) |
convert time info to time value | |
static const ZFTimeValue & | timeZoneLocal () |
get current time zone | |
![]() | |
static const ZFClass * | ClassData (void) |
get class info | |
static zfidentity | E_ObjectBeforeAlloc (void) |
see ZFObject::observerNotify | |
static zfidentity | E_ObjectAfterAlloc (void) |
see ZFObject::observerNotify | |
static zfidentity | E_ObjectBeforeDealloc (void) |
see ZFObject::observerNotify | |
static zfidentity | E_ObjectPropertyValueOnUpdate (void) |
see ZFObject::observerNotify | |
static zfidentity | E_ObjectPropertyValueOnReset (void) |
see ZFObject::observerNotify | |
![]() | |
static const ZFClass * | ClassData (void) |
get class info | |
![]() | |
static const ZFClass * | ClassData (void) |
get class info | |
![]() | |
static const ZFClass * | ClassData (void) |
get class info | |
Protected Types | |
typedef ZFObject | zfsuper |
class ref to super | |
typedef ZFTime | zfself |
class ref to self | |
![]() | |
typedef _ZFP_Obj_Base | zfsuper |
class ref to super | |
typedef ZFObject | zfself |
class ref to self | |
![]() | |
typedef ZFInterface | zfsuper |
typedef for super (always ZFInterface for an interface type) | |
typedef ZFSerializable | zfself |
typedef for self | |
![]() | |
typedef _ZFP_ObjI_Base | zfsuper |
typedef for super (always ZFInterface for an interface type) | |
typedef ZFInterface | zfself |
typedef for self | |
![]() | |
typedef ZFInterface | zfsuper |
typedef for super (always ZFInterface for an interface type) | |
typedef ZFCopyable | zfself |
typedef for self | |
Protected Member Functions | |
virtual zfbool | serializableOnSerializeFromData (const ZFSerializableData &serializableData, zfstring *outErrorHint=zft_zfnull, ZFSerializableData *outErrorPos=zft_zfnull) |
for serializable data that has "category" attribute, ZFSerializable would ignore it and leave it to subclass to resolve, see ZFSerializable | |
virtual zfbool | serializableOnSerializeToData (ZFSerializableData &serializableData, zfstring *outErrorHint=zft_zfnull, ZFSerializable *refOwner=zft_zfnull) |
corresponding to serializableOnSerializeFromData, return whether the task is success, see ZFSerializable | |
virtual void | copyableOnCopyFrom (ZFObject *anotherObj) |
called by copy to copy contents from anotherObj | |
virtual void | objectOnInit (ZFTime *time) |
init from another ZFTime | |
virtual void | objectOnInit (const ZFTimeValue &tv, const ZFTimeValue &timeZone=(ZFTime::timeZoneLocal)()) |
init from time value | |
virtual void | objectOnInit (const ZFTimeInfo &ti, const ZFTimeValue &timeZone=(ZFTime::timeZoneLocal)()) |
init from time info, or zero time if invalid | |
virtual void | objectOnInit (void) |
override this to init your object | |
virtual void | objectOnDealloc (void) |
override this to destroy your object | |
virtual void | objectInfoImplAppend (zfstring &ret) |
see objectInfo | |
![]() | |
virtual void | objectInfoImpl (zfstring &ret) |
see objectInfo | |
virtual ZFCompareResult | objectCompareValueImpl (ZFObject *anotherObj) |
see objectCompareValue | |
virtual void | observerOnAdd (zfidentity eventId) |
called when add first observer | |
virtual void | observerOnRemove (zfidentity eventId) |
called when remove last observer | |
virtual void | observerOnEvent (const ZFArgs &zfargs) |
notified when observerNotify | |
virtual void | objectOnInitFinish (void) |
called after objectOnInit, safe to call virtual functions here | |
virtual void | objectOnDeallocPrepare (void) |
called before objectOnDealloc, safe to call virtual functions here | |
virtual void | objectOnRetain (void) |
called to retain object | |
virtual void | objectOnRelease (void) |
called to release object | |
virtual void | objectPropertyValueOnUpdate (const ZFProperty *property, const void *oldValue) |
see E_ObjectPropertyValueOnUpdate | |
virtual void | objectPropertyValueOnReset (const ZFProperty *property) |
see E_ObjectPropertyValueOnReset | |
![]() | |
virtual ZFSerializablePropertyType | serializableOnCheckPropertyType (const ZFProperty *property) |
check the property type that serializable should do what while serializing | |
virtual zfbool | serializableOnCheck (void) |
see serializable | |
virtual zfbool | serializableOnSerializePropertyFromData (const ZFSerializableData &propertyData, const ZFProperty *property, zfstring *outErrorHint=zft_zfnull, ZFSerializableData *outErrorPos=zft_zfnull) |
see serializableOnCheckPropertyType, usually you have no need to override this method, see ZFSerializable | |
virtual zfbool | serializableOnSerializePropertyToData (ZFSerializableData &ownerData, const ZFProperty *property, zfstring *outErrorHint=zft_zfnull, ZFSerializable *refOwner=zft_zfnull) |
see serializableOnCheckPropertyType, usually you have no need to override this method, see ZFSerializable | |
virtual zfbool | serializableOnSerializeEmbededPropertyFromData (const ZFSerializableData &propertyData, const ZFProperty *property, zfstring *outErrorHint=zft_zfnull, ZFSerializableData *outErrorPos=zft_zfnull) |
see serializableOnCheckPropertyType, usually you have no need to override this method, see ZFSerializable | |
virtual zfbool | serializableOnSerializeEmbededPropertyToData (ZFSerializableData &ownerData, const ZFProperty *property, ZFSerializable *refOwner, zfstring *outErrorHint=zft_zfnull) |
see serializableOnCheckPropertyType, usually you have no need to override this method, see ZFSerializable | |
virtual zfbool | serializableOnSerializeFromString (const zfchar *src, zfindex srcLen=((zfindex) -1), zfstring *errorHint=zft_zfnull) |
see serializeFromString | |
virtual zfbool | serializableOnSerializeToString (zfstring &ret, zfstring *errorHint=zft_zfnull) |
see serializeFromString | |
time utility
use a ZFTimeValue to store time, which means how many seconds had passed since ZFTimeInfoZero
a positive value means time that is after ZFTimeInfoZero, and a negative value means time that is before ZFTimeInfoZero
ZFTimeValue as well as ZFTime contains no actual time logic such as time zone, UTC, GMT, etc, it is simply a time unit, what it means is depends on you
for performance, you may want to use ZFTimeValue or zftimet to process times, is enough for most case and is recommended
serializable data:
|
inlinevirtual |
get instance's class info
Reimplemented from ZFObject.
|
protectedvirtual |
for serializable data that has "category" attribute, ZFSerializable would ignore it and leave it to subclass to resolve, see ZFSerializable
while overriding this method, you should call super first, and then check whether super has resolved the data
if subclass should resolve the category, you should mark data as resolved and return whether resolve success
if not, subclass should leave the data unresoved and return true
Reimplemented from ZFSerializable.
|
protectedvirtual |
corresponding to serializableOnSerializeFromData, return whether the task is success, see ZFSerializable
Reimplemented from ZFSerializable.
|
inlineprotectedvirtual |
called by copy to copy contents from anotherObj
anotherObj is ensured the same type as self, ensured not null, and ensured not same instance of this
by default this method would do nothing for performance
Reimplemented from ZFCopyable.
|
static |
get timestamp in mili seconds
use this instead of currentTimeValue if you only care about time interval, this value is a relative value, what 0 means is not ensured
typically, this method would have better performance and accuracy than currentTimeValue
|
static |
get current time zone
while getting time info from a ZFTime object, time zone would be applied, simply by ZFTimeValueInc to the time value of ZFTime object
|
protectedvirtual |
override this to init your object
subclass must call superclass's objectOnInit before any other code if override
you may also declare objectOnInit with params like this:
Reimplemented from ZFObject.
|
protectedvirtual |
override this to destroy your object
subclass must call superclass's objectOnDealloc after any other code if override
see objectOnInit for more info
Reimplemented from ZFObject.
|
protectedvirtual |
see objectInfo
Reimplemented from ZFObject.
|
virtual |
see objectHash
Reimplemented from ZFObject.
|
virtual |
compared by timeValueAppliedTimeZone
Reimplemented from ZFObject.
|
virtual |
set time zone attched to this ZFTime object
|
virtual |
set time according to time info
set time to ZFTimeInfoZero if input is invalid
|
virtual |
set time according to time info
set time to ZFTimeInfoZero if input is invalid