📄 kwqdatetime.cpp
字号:
/*
* Copyright (C) 2003 Apple Computer, Inc. All rights reserved.
* Portions Copyright (c) 2005 Nokia Corporation, Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "KWQDateTime.h"
QTime::QTime(int hours, int minutes)
{
TDateTime dt = iTime.DateTime();
dt.SetHour( hours );
dt.SetMinute( minutes );
iTime = dt;
}
int QTime::msec() const
{
return iTime.DateTime().MicroSecond();
}
void QTime::start()
{
iTime.HomeTime();
}
int QTime::elapsed() const
{
TTime now;
now.HomeTime();
return I64INT(now.MicroSecondsFrom(iTime).Int64()/1000);
}
int QTime::restart()
{
int result = elapsed();
iTime.HomeTime();
return result;
}
QDate::QDate(int y, int m, int d)
: year(y), month(m), day(d)
{
}
QDateTime::QDateTime(const QDate &d, const QTime &t)
{
TDateTime dt = t.iTime.DateTime();
dt.SetYear( d.year );
dt.SetMonth( (TMonth)( EJanuary + d.month ) );
dt.SetDay( d.day );
iDateTime.iTime = dt;
}
int QDateTime::secsTo(const QDateTime &b) const
{
TTimeIntervalSeconds seconds;
iDateTime.iTime.SecondsFrom( b.iDateTime.iTime, seconds );
return seconds.Int();
}
QDateTime QDateTime::currentDateTime()
{
QDateTime dt;
dt.iDateTime.iTime.HomeTime();
return dt;
}
QTime QDateTime::time()
{
return iDateTime;
}
bool KWQUIEventTime::uiEventPending() const
{
return false;
/*
unsigned int mask = NSAnyEventMask &
~(NSFlagsChangedMask | NSAppKitDefinedMask | NSSystemDefinedMask | NSApplicationDefinedMask | NSPeriodicMask | NSCursorUpdateMask);
return [[NSApplication sharedApplication] nextEventMatchingMask:mask untilDate:nil
inMode:NSEventTrackingRunLoopMode dequeue:NO] != nil;
*/
}
#ifdef _KWQ_IOSTREAM_
std::ostream &operator<<(std::ostream &o, const QDate &date)
{
return o <<
"QDate: [yy/mm/dd: " <<
date.year <<
'/' <<
date.month <<
'/' <<
date.day <<
']';
}
std::ostream &operator<<(std::ostream &o, const QTime &time)
{
CFGregorianDate g = CFAbsoluteTimeGetGregorianDate(time.timeInSeconds, systemTimeZone());
return o <<
"QTime: [hh:mm:ss:ms = " <<
(int)g.hour <<
':' <<
(int)g.minute <<
':' <<
(int)g.second <<
':' <<
time.msec() <<
']';
}
std::ostream &operator<<(std::ostream &o, const QDateTime &dateTime)
{
CFGregorianDate g = CFAbsoluteTimeGetGregorianDate(dateTime.dateInSeconds, systemTimeZone());
return o <<
"QDateTime: [yy/mm/dd hh:mm:ss:ms = " <<
(int)g.year <<
'/' <<
(int)g.month <<
'/' <<
(int)g.day <<
' ' <<
(int)g.hour <<
':' <<
(int)g.minute <<
':' <<
(int)g.second <<
':' <<
((int)(g.second * 1000) % 1000) <<
']';
}
#endif // _KWQ_IOSTREAM_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -