[ create a new paste ] login | about

Link: http://codepad.org/bDXJDGxd    [ raw code | output | fork ]

C++, pasted on Sep 21:
//-*-Mode: C++;-*-
#ifndef _GKTimeDuration_h_
#define _GKTimeDuration_h_

#include "GKUtil.h"
#include <qdatetime.h>

class GKEXPORT GKTimeDuration
{
public:
    GKTimeDuration() { ds=0; }				// set null time
    GKTimeDuration( int h, int m, int s=0, int ms = 0 );	// set time
    GKTimeDuration( const QTime & t );
    ~GKTimeDuration() {}

	/*! A duration of 0 milliseconds.
	*/
    bool isNull() const { return ds == 0; }
    /*! Is valid? 
    */
    bool isValid() const;

	/*! Convers this duration to hour, minutes, seconds and milliseconds and returns the hour.
		For example: 3610.5 is converted to 01:00:10.500 and it returns 1.
	*/
    qint64 hour() const;
	/*! Convers this duration to hour, minutes, seconds and milliseconds and returns the minute.
		For example: 3610.5 is converted to 01:00:10.500 and it returns 0.
	*/
    qint64 minute() const;
	/*! Convers this duration to hour, minutes, seconds and milliseconds and returns the second.
		For example: 3610.5 is converted to 01:00:10.500 and it returns 10.
	*/
    qint64 second() const;
	/*! Convers this duration to hour, minutes, seconds and milliseconds and returns the millisecond.
		For example: 3610.5 is converted to 01:00:10.500 and it returns 500.
	*/
    qint64 msec() const;
    
    /*! Get this duration in milliseconds (note that this is not equal to GKTimeDuration::msec)
    */
    qint64 toMilliseconds() const;
    
	/*! Returns a string representation of this duration. If forceMilliseconds is false it will not
		add millisecond info when they are zero.
	*/
    QString toString( bool forceMilliseconds = false ) const;
    /*! Set the duration.
    */
    bool setHMS( int h, int m, int s, int ms = 0 );
	/*! Retuns a QTime equivalent to this duration. Note that an overflow is possible as QTime
		only support 24 hours.
	*/
	QTime toQTime() const;
	//! Returns this GKTimeDuration's hour, minute and second converted to seconds 
	qint64 toSeconds( uint * miliseconds = NULL ) const;

	/*! Returns this duration in days, the remaining time is returned in milliseconds.
	*/
	qint64 toDays( uint * miliseconds = NULL )  const;
	/*!Returns this GKTimeDuration's hour, minute and second converted to minutes
	*/
	float toMinutes() const;
	
	//! Returns this GKTimeDuration's hour, minute and second converted to hours 
	float toHours() const;
	
    GKTimeDuration addSecs( qint64 secs ) const;
	qint64 secsTo( const GKTimeDuration & ) const;

	GKTimeDuration addMSecs( qint64 ms ) const;
	qint64 msecsTo( const GKTimeDuration &t ) const;

    bool operator==( const GKTimeDuration &d ) const { return ds == d.ds; }
    bool operator!=( const GKTimeDuration &d ) const { return ds != d.ds; }
    bool operator<( const GKTimeDuration &d )	const { return ds < d.ds; }
    bool operator<=( const GKTimeDuration &d ) const { return ds <= d.ds; }
    bool operator>( const GKTimeDuration &d )	const { return ds > d.ds; }
    bool operator>=( const GKTimeDuration &d ) const { return ds >= d.ds; }

    GKTimeDuration & operator += ( const GKTimeDuration & c );
    GKTimeDuration & operator -= ( const GKTimeDuration & c );

    GKTimeDuration operator + ( const GKTimeDuration & c ) const;
    GKTimeDuration operator - ( const GKTimeDuration & c ) const;

	/*! Duration between to times. Note that a duration is always positive so this function will
		reorder from and to if to < from.
	*/
	static GKTimeDuration durationBetweenTimes( const QTime & from, const QTime & to );

    /*! Is valid? 
    */
    static bool isValid( int h, int m, int s );
    /*! Returns a duration from a string in the format HH:MM:SS
    */
    static GKTimeDuration fromString( const QString &s );

private:
    quint64   ds;

//#ifndef QT_NO_DATASTREAM
    friend GKEXPORT QDataStream &operator<<( QDataStream &, const GKTimeDuration & );
    friend GKEXPORT QDataStream &operator>>( QDataStream &, GKTimeDuration & );
//#endif 

};

GKEXPORT QDataStream &operator<<( QDataStream &, const GKTimeDuration & );
GKEXPORT QDataStream &operator>>( QDataStream &, GKTimeDuration & );
 
#endif


Output:
1
2
3
4
Line 19: error: GKUtil.h: No such file or directory
Line 22: error: qdatetime.h: No such file or directory
Line 8: error: invalid function declaration
compilation terminated due to -Wfatal-errors.


Create a new paste based on this one


Comments: