1 | /*
|
---|
2 | Copyright (C) 2006 Feeling Software Inc
|
---|
3 | MIT License: http://www.opensource.org/licenses/mit-license.php
|
---|
4 | */
|
---|
5 |
|
---|
6 | /**
|
---|
7 | @file FUDateTime.h
|
---|
8 | This file contains the FUDateTime class.
|
---|
9 | */
|
---|
10 |
|
---|
11 | #ifndef _FU_DATETIME_H_
|
---|
12 | #define _FU_DATETIME_H_
|
---|
13 |
|
---|
14 | /**
|
---|
15 | A common date-time.
|
---|
16 | Encapsulates the OS-dependant timing functions. Use the static member function: GetNow()
|
---|
17 | to sample the current time. The day and month values are 1-indexed, to be user-friendly.
|
---|
18 |
|
---|
19 | @ingroup FUtils
|
---|
20 | */
|
---|
21 | class FCOLLADA_EXPORT FUDateTime
|
---|
22 | {
|
---|
23 | private:
|
---|
24 | // To be more friendly, 'day' and 'month' are 1-indexed
|
---|
25 | uint32 seconds;
|
---|
26 | uint32 minutes;
|
---|
27 | uint32 hour;
|
---|
28 | uint32 day;
|
---|
29 | uint32 month;
|
---|
30 | uint32 year;
|
---|
31 |
|
---|
32 | public:
|
---|
33 | /** Default constructor. The default date-time is set to 01/01/1900 at 00:00:00. */
|
---|
34 | FUDateTime();
|
---|
35 | /** Copy constructor. Creates an identical clone of the given date-time structure.
|
---|
36 | @param time The date-time structure to copy. */
|
---|
37 | FUDateTime(const FUDateTime& time);
|
---|
38 | /** Destructor. */
|
---|
39 | ~FUDateTime();
|
---|
40 |
|
---|
41 | /** Retrieves the seconds component of the date-time structure.
|
---|
42 | @returns The seconds component. The seconds component is always in the range [0, 60[. */
|
---|
43 | inline uint32 GetSeconds() const { return seconds; }
|
---|
44 | /** Retrieves the minutes component of the date-time structure.
|
---|
45 | @returns The minutes component. The minutes component is always in the range [0, 60[. */
|
---|
46 | inline uint32 GetMinutes() const { return minutes; }
|
---|
47 | /** Retrieves the hour component of the date-time structure.
|
---|
48 | @returns The hour component. The hour component is always in the range [0, 24[. */
|
---|
49 | inline uint32 GetHour() const { return hour; }
|
---|
50 | /** Retrieves the day component of the date-time structure.
|
---|
51 | @returns The day component. The day component is 1-indexed and has an upper range
|
---|
52 | that depends on the month component. The valid range for the day component is [1, 31].*/
|
---|
53 | inline uint32 GetDay() const { return day; }
|
---|
54 | /** Retrieves the month component of the date-time structure.
|
---|
55 | @returns The month component. The month component is 1-indexed and is always in the range [1, 12].*/
|
---|
56 | inline uint32 GetMonth() const { return month; }
|
---|
57 | /** Retrieves the year component of the date-time structure.
|
---|
58 | @returns The year component. The year component represents the full year value,
|
---|
59 | where a value of 2000 is returned for the year 2000.*/
|
---|
60 | inline uint32 GetYear() const { return year; }
|
---|
61 |
|
---|
62 | /** Sets the seconds component of the date-time structure.
|
---|
63 | @param _seconds The new seconds value. No verification is made
|
---|
64 | to verify that the new value is within the valid range. */
|
---|
65 | inline void SetSeconds(uint32 _seconds) { seconds = _seconds; }
|
---|
66 | /** Sets the minutes component of the date-time structure.
|
---|
67 | @param _minutes The new seconds value. No verification is made
|
---|
68 | to verify that the new value is within the valid range. */
|
---|
69 | inline void SetMinutes(uint32 _minutes) { minutes = _minutes; }
|
---|
70 | /** Sets the hour component of the date-time structure.
|
---|
71 | @param _hour The new seconds value. No verification is made
|
---|
72 | to verify that the new value is within the valid range. */
|
---|
73 | inline void SetHour(uint32 _hour) { hour = _hour; }
|
---|
74 | /** Sets the day component of the date-time structure.
|
---|
75 | @param _day The new seconds value. No verification is made
|
---|
76 | to verify that the new value is within the valid range. */
|
---|
77 | inline void SetDay(uint32 _day) { day = _day; }
|
---|
78 | /** Sets the month component of the date-time structure.
|
---|
79 | @param _month The new seconds value. No verification is made
|
---|
80 | to verify that the new value is within the valid range. */
|
---|
81 | inline void SetMonth(uint32 _month) { month = _month; }
|
---|
82 | /** Sets the year component of the date-time structure.
|
---|
83 | @param _year The new seconds value. No verification is made
|
---|
84 | to verify that the new value is within the valid range. */
|
---|
85 | inline void SetYear(uint32 _year) { year = _year; }
|
---|
86 |
|
---|
87 | /** Creates a date-time structure to represent the current time.
|
---|
88 | Encapsulates the OS-dependant time() function.
|
---|
89 | @return The current date-time. */
|
---|
90 | static FUDateTime GetNow();
|
---|
91 | };
|
---|
92 |
|
---|
93 | #endif // _FU_DATETIME_H_
|
---|