ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/zoe/trunk/Stamp.hpp
Revision: 39
Committed: 2004-07-23T17:52:53-07:00 (20 years, 11 months ago) by douglas
File size: 1189 byte(s)
Log Message:
Watch out for feeping creaturism!

File Contents

# Content
1 // Zoe AIM Away Message RSS Feed Generator
2 //
3 // Seth King and Douglas Thrift
4 //
5 // $Id$
6
7 #ifndef _Stamp_hpp_
8 #define _Stamp_hpp_
9
10 #include "Zoe.hpp"
11
12 #include <ctime>
13
14 template<int Seconds>
15 class Period
16 {
17 private:
18 std::time_t seconds;
19 public:
20 Period(std::time_t period) : seconds(period * Seconds) {}
21 operator std::time_t() const { return seconds; }
22 };
23
24 typedef Period<60> Minute;
25 typedef Period<3600> Hour;
26 typedef Period<86400> Day;
27
28 class Stamp
29 {
30 private:
31 std::time_t when;
32 std::tm stamp;
33 public:
34 Stamp(std::time_t when = std::time(NULL)) : when(when) { gmtime_r(&when,
35 &stamp); }
36 Stamp(const ext::String& when);
37 ext::String get822() const;
38 ext::String getW3() const;
39 ext::String getDate() const;
40 ext::String getTime() const;
41 void setSeconds(int seconds);
42 void setMinutes(int minutes);
43 operator ext::String() const;
44 Stamp operator+(std::time_t seconds) const { return when + seconds; }
45 Stamp operator-(std::time_t seconds) const { return when - seconds; }
46 bool operator<(const Stamp& stamp) const { return when < stamp.when; }
47 };
48
49 inline std::ostream& operator<<(std::ostream& sout, const Stamp& stamp)
50 {
51 return sout << ext::String(stamp);
52 }
53
54 #endif // _Stamp_hpp_

Properties

Name Value
svn:eol-style native
svn:keywords Id