1 #ifndef DATE_TIME_TIME_ITERATOR_HPP___ 2 #define DATE_TIME_TIME_ITERATOR_HPP___ 3 4 /* Copyright (c) 2002,2003 CrystalClear Software, Inc. 5 * Use, modification and distribution is subject to the 6 * Boost Software License, Version 1.0. (See accompanying 7 * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) 8 * Author: Jeff Garland, Bart Garst 9 * $Date$ 10 */ 11 12 13 namespace boost { 14 namespace date_time { 15 16 17 //! Simple time iterator skeleton class 18 template<class time_type> 19 class time_itr { 20 public: 21 typedef typename time_type::time_duration_type time_duration_type; time_itr(time_type t,time_duration_type d)22 time_itr(time_type t, time_duration_type d) : current_(t), offset_(d) {} operator ++()23 time_itr& operator++() 24 { 25 current_ = current_ + offset_; 26 return *this; 27 } operator --()28 time_itr& operator--() 29 { 30 current_ = current_ - offset_; 31 return *this; 32 } operator *()33 time_type operator*() {return current_;} operator ->()34 time_type* operator->() {return ¤t_;} operator <(const time_type & t)35 bool operator< (const time_type& t) {return current_ < t;} operator <=(const time_type & t)36 bool operator<= (const time_type& t) {return current_ <= t;} operator !=(const time_type & t)37 bool operator!= (const time_type& t) {return current_ != t;} operator ==(const time_type & t)38 bool operator== (const time_type& t) {return current_ == t;} operator >(const time_type & t)39 bool operator> (const time_type& t) {return current_ > t;} operator >=(const time_type & t)40 bool operator>= (const time_type& t) {return current_ >= t;} 41 42 private: 43 time_type current_; 44 time_duration_type offset_; 45 }; 46 47 48 49 } }//namespace date_time 50 51 52 #endif 53