Changeset 116 for XMLIO_V2/dev/dev_rv/src/XMLIO/calendar.hpp
- Timestamp:
- 07/16/10 16:27:14 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XMLIO_V2/dev/dev_rv/src/XMLIO/calendar.hpp
r115 r116 21 21 } 22 22 23 virtual int getYearTotalLength(const Date& d) const { return (365 * 86400); } // Retourne la longueur d'une année en seconde. 24 23 25 virtual int getYearLength(void) const { return (12); } // Retourne la longueur d'une année en mois. 24 26 virtual int getDayLength(void) const { return (24); } // Retourne la longueur d'un jour en heures. … … 32 34 for(_d0.setMonth(1); _d0.getMonth() < d.getMonth(); _d0.setMonth(_d0.getMonth()+1)) 33 35 nbday += getMonthLength(_d0); 34 36 //std::cout << "nombre de jours : " << nbday << std::endl; 35 37 return ((((nbday + d.getDay()) * getDayLength() + d.getHour()) 36 38 * getHourLength() + d.getMinute()) * getMinuteLength() + d.getSecond()); … … 74 76 {/* Ne rien faire de plus */} 75 77 78 virtual int getYearTotalLength(const Date& d) const 79 { // Retourne la longueur d'une année en seconde. 80 if (d.getYear()%4 == 0) return (366 * 86400); 81 return (365 * 86400); 82 } 83 76 84 virtual int getMonthLength(const Date& d) const 77 85 { // Retourne la longueur du mois en jour. … … 91 99 GregorianCalendar() : AbstractCalendar("Gregorian") 92 100 {/* Ne rien faire de plus */} 101 102 virtual int getYearTotalLength(const Date& d) const 103 { // Retourne la longueur d'une année en seconde. 104 if ((d.getYear() % 4 == 0) && (d.getYear() % 100 != 0 || d.getYear() % 400 == 0)) return (366 * 86400); 105 return (365 * 86400); 106 } 93 107 94 108 virtual int getMonthLength(const Date& d) const … … 127 141 { if (d.getMonth() == 2) return (29); return AbstractCalendar::getMonthLength(d); } 128 142 143 virtual int getYearTotalLength(const Date& d) const { return (366 * 86400); } // Retourne la longueur d'une année en seconde. 144 129 145 virtual ~AllLeapCalendar() 130 146 {/* Ne rien faire de plus */} … … 132 148 }; // class NoLeapCalendar 133 149 134 class D3 0Calendar : public AbstractCalendar150 class D360Calendar : public AbstractCalendar 135 151 { 136 152 public : 137 D3 0Calendar() : AbstractCalendar("D30")153 D360Calendar() : AbstractCalendar("D360") 138 154 {/* Ne rien faire de plus */} 139 155 156 virtual int getYearTotalLength(const Date& d) const { return (360 * 86400); } // Retourne la longueur d'une année en seconde. 140 157 virtual int getMonthLength(const Date& d) const { return (30); } 141 158 142 virtual ~D3 0Calendar()159 virtual ~D360Calendar() 143 160 {/* Ne rien faire de plus */} 144 161 145 }; // class D3 0Calendar162 }; // class D360Calendar 146 163 147 164 148 165 //////////////////////////////////////// 149 Date::operator Time(void) 166 Date::operator Time(void) // Non vérifiée (algorithme naïf) 150 167 { 151 Duration diff = *this - relCalendar.getInitDate(); 152 return (0); 168 // Todo : Tester si la date courante est supérieure à la date initiale. 169 Time retvalue = - relCalendar.getNbSecond(relCalendar.getInitDate()) + relCalendar.getNbSecond(*this); 170 for(Date _d(relCalendar.getInitDate()); _d.getYear() < getYear(); _d.setYear(_d.getYear()+1)) 171 retvalue += relCalendar.getYearTotalLength(_d); 172 return (retvalue); 153 173 } 154 174
Note: See TracChangeset
for help on using the changeset viewer.