⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kwqdatetime.cpp

📁 khtml在gtk上的移植版本
💻 CPP
字号:
/* * Copyright (C) 2001, 2002 Apple Computer, 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"#include <glib.h>#include <time.h>#include <string.h>QTime::QTime()    :_timer(0), _h(0),_m(0),_s(0),_ms(0){}QTime::QTime ( int h, int m, int s, int ms )    :_timer(0), _h(h), _m(m), _s(s), _ms(ms){};QTime::QTime(time_t t)    : _timer(0){    struct tm *ts = localtime(&t);    _ms = 0;    _s = ts->tm_sec;    _m = ts->tm_min;    _h = ts->tm_hour;}int QTime::msec() const{	    return _ms;}int QTime::elapsed(){    if (!_timer) return 0;    gdouble sec = g_timer_elapsed(_timer, NULL /*micro_secs*/);    _s = (int) sec;    _h = (int) (_s / (60*60));    _m = (int) ((_s - (_h * (60*60)) ) / 60);     _s = _s % 60;    _ms = (int) ((sec - ((gdouble) ((int)sec))) * 1000);    return (int) (sec * 1000.0f);}void QTime::start(){    if (!_timer)		_timer = g_timer_new();    else	g_timer_start(_timer);}int QTime::restart(){    int t = elapsed();    start();    return t;}QTime::~QTime(){    if (_timer) {	g_timer_stop(_timer);	g_timer_destroy(_timer);    }}QDate::QDate(int y, int m, int d){    struct tm ts;    memset(&ts, 0, sizeof(ts));    ts.tm_mday = d;    ts.tm_mon = m;    ts.tm_year = y;    ttime = mktime(&ts);}QDate::QDate(time_t t)    : ttime(t){}QDateTime::QDateTime(const QDate &d, const QTime &t){    if (!d.isValid()) 	return;    struct tm *otherts;    struct tm ts;    otherts = localtime(&(d.ttime));    ts = *otherts;    ts.tm_sec = 0;    ts.tm_hour = 0;    ts.tm_min = 0;    ttime = mktime(&ts);    ttime += (t._h*60*60) + (t._m*60) + (t._s);}int QDateTime::secsTo(const QDateTime &b) const{    // only use in KHTML is measuring from Unix Epoch    return (int)::time(0);}QString QDateTime::toString(const QString &format) const {    return QString(ctime(&ttime));}#ifdef _KWQ_IOSTREAM_#include <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 + -