/** SGX

The   sss    gggg x   x   
     s      g      x x    Engine
      sss   g  gg   x
         s  g   g  x x          Copyright 1995-2009.
     ssss    gggg x   x         Steven Goodwin. All Rights Reserved.
    
This version has been released under the GNU Public License v2.0.

Please see the license files for details.

File: sgx/include/sgx/core/time/utctime.hpp

*/

#ifndef SGX_CORE_TIME_UTC_TIME_HPP
#define SGX_CORE_TIME_UTC_TIME_HPP	1

#include "sgx/core/types/types.hpp"


class UTCTime {
public:
	tUINT32	hours, minutes, seconds;
	tUINT32	milliseconds;

	tBOOL		isLater(const UTCTime &rhs_time) const;
	tBOOL		isSame(const UTCTime &rhs_time) const;
	tBOOL		isEarlier(const UTCTime &rhs_time) const;
	tREAL32		timeBetween(const UTCTime &rhs_time) const;
};

typedef enum {
	Sunday = 0,
	Monday,
	Tuesday,
	Wednesday,
	Thursday,
	Friday,
	Saturday,
} UTCDayOfWeek;

typedef enum {
	January = 0,
	February,
	March,
	April,
	May,
	June,
	July,
	August,
	September,
	October,
	November,
	December,
} UTCMonth;

class UTCDay {
public:
	tUINT32			day;
	UTCMonth		month;
	tUINT32			year;
	UTCDayOfWeek	dow;


	tBOOL			isLater(const UTCDay &rhs_day) const;
	tBOOL			isEarlier(const UTCDay &rhs_day) const;
	tBOOL			isSame(const UTCDay &rhs_day) const;

};

class UTCDate {
public:
	UTCDay		day;
	UTCTime		time;

	tBOOL		isEarlier(const UTCDate &date) const;
};

#endif /* SGX_CORE_TIME_UTC_TIME_HPP */
