Files
bullet3/Extras/FCollada/FUtils/FUDateTime.h
2006-05-25 19:18:29 +00:00

94 lines
4.0 KiB
C++

/*
Copyright (C) 2006 Feeling Software Inc
MIT License: http://www.opensource.org/licenses/mit-license.php
*/
/**
@file FUDateTime.h
This file contains the FUDateTime class.
*/
#ifndef _FU_DATETIME_H_
#define _FU_DATETIME_H_
/**
A common date-time.
Encapsulates the OS-dependant timing functions. Use the static member function: GetNow()
to sample the current time. The day and month values are 1-indexed, to be user-friendly.
@ingroup FUtils
*/
class FCOLLADA_EXPORT FUDateTime
{
private:
// To be more friendly, 'day' and 'month' are 1-indexed
uint32 seconds;
uint32 minutes;
uint32 hour;
uint32 day;
uint32 month;
uint32 year;
public:
/** Default constructor. The default date-time is set to 01/01/1900 at 00:00:00. */
FUDateTime();
/** Copy constructor. Creates an identical clone of the given date-time structure.
@param time The date-time structure to copy. */
FUDateTime(const FUDateTime& time);
/** Destructor. */
~FUDateTime();
/** Retrieves the seconds component of the date-time structure.
@returns The seconds component. The seconds component is always in the range [0, 60[. */
inline uint32 GetSeconds() const { return seconds; }
/** Retrieves the minutes component of the date-time structure.
@returns The minutes component. The minutes component is always in the range [0, 60[. */
inline uint32 GetMinutes() const { return minutes; }
/** Retrieves the hour component of the date-time structure.
@returns The hour component. The hour component is always in the range [0, 24[. */
inline uint32 GetHour() const { return hour; }
/** Retrieves the day component of the date-time structure.
@returns The day component. The day component is 1-indexed and has an upper range
that depends on the month component. The valid range for the day component is [1, 31].*/
inline uint32 GetDay() const { return day; }
/** Retrieves the month component of the date-time structure.
@returns The month component. The month component is 1-indexed and is always in the range [1, 12].*/
inline uint32 GetMonth() const { return month; }
/** Retrieves the year component of the date-time structure.
@returns The year component. The year component represents the full year value,
where a value of 2000 is returned for the year 2000.*/
inline uint32 GetYear() const { return year; }
/** Sets the seconds component of the date-time structure.
@param _seconds The new seconds value. No verification is made
to verify that the new value is within the valid range. */
inline void SetSeconds(uint32 _seconds) { seconds = _seconds; }
/** Sets the minutes component of the date-time structure.
@param _minutes The new seconds value. No verification is made
to verify that the new value is within the valid range. */
inline void SetMinutes(uint32 _minutes) { minutes = _minutes; }
/** Sets the hour component of the date-time structure.
@param _hour The new seconds value. No verification is made
to verify that the new value is within the valid range. */
inline void SetHour(uint32 _hour) { hour = _hour; }
/** Sets the day component of the date-time structure.
@param _day The new seconds value. No verification is made
to verify that the new value is within the valid range. */
inline void SetDay(uint32 _day) { day = _day; }
/** Sets the month component of the date-time structure.
@param _month The new seconds value. No verification is made
to verify that the new value is within the valid range. */
inline void SetMonth(uint32 _month) { month = _month; }
/** Sets the year component of the date-time structure.
@param _year The new seconds value. No verification is made
to verify that the new value is within the valid range. */
inline void SetYear(uint32 _year) { year = _year; }
/** Creates a date-time structure to represent the current time.
Encapsulates the OS-dependant time() function.
@return The current date-time. */
static FUDateTime GetNow();
};
#endif // _FU_DATETIME_H_