Mercurial > code
annotate modules/date/date.h @ 592:2bd11ea63822
Dynlib: move to bitbucket
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 31 Aug 2016 18:48:03 +0200 |
parents | f48bb09bccc7 |
children |
rev | line source |
---|---|
486 | 1 /* |
2 * date.h -- date and time manipulation | |
3 * | |
4 * Copyright (c) 2011-2015 David Demelier <markand@malikania.fr> | |
5 * | |
6 * Permission to use, copy, modify, and/or distribute this software for any | |
7 * purpose with or without fee is hereby granted, provided that the above | |
8 * copyright notice and this permission notice appear in all copies. | |
9 * | |
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
17 */ | |
18 | |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
19 #ifndef DATE_HPP |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
20 #define DATE_HPP |
486 | 21 |
22 /** | |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
23 * \file date.h |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
24 * \brief Basic date management. |
486 | 25 */ |
26 | |
27 #include <cstdint> | |
28 #include <ctime> | |
29 #include <string> | |
30 | |
31 /** | |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
32 * \class Date |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
33 * \brief Basic date class and format. |
486 | 34 */ |
35 class Date { | |
36 private: | |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
37 time_t m_timestamp; |
486 | 38 |
39 public: | |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
40 /** |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
41 * Default constructor to the current date. |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
42 */ |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
43 Date(); |
486 | 44 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
45 /** |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
46 * Date with specific timestamp. |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
47 * |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
48 * \param timestamp the timestamp |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
49 */ |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
50 Date(time_t timestamp); |
486 | 51 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
52 /** |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
53 * Get the timestamp. |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
54 * |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
55 * \return the timestamp |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
56 */ |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
57 inline time_t timestamp() const noexcept |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
58 { |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
59 return m_timestamp; |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
60 } |
486 | 61 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
62 /** |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
63 * Format the current that in the specified format, |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
64 * see strftime(3) for patterns. |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
65 * |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
66 * \param format the format |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
67 * \return the date formated |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
68 */ |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
69 std::string format(const std::string &format); |
486 | 70 }; |
71 | |
72 /** | |
73 * Check is two dates are identical. | |
74 * | |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
75 * \param d1 the first date |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
76 * \param d2 the second date |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
77 * \return true if same |
486 | 78 */ |
79 bool operator==(const Date &d1, const Date &d2); | |
80 | |
81 /** | |
82 * Check is a date is less or equal the second date. | |
83 * | |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
84 * \param d1 the first date |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
85 * \param d2 the second date |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
86 * \return true if d1 <= d2 |
486 | 87 */ |
88 bool operator<=(const Date &d1, const Date &d2); | |
89 | |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
90 #endif // !DATE_HPP |