Changeset 116
- Timestamp:
- 07/16/10 16:27:14 (14 years ago)
- Location:
- XMLIO_V2/dev/dev_rv/src/XMLIO
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
XMLIO_V2/dev/dev_rv/src/XMLIO/c_interface.cpp
r115 r116 24 24 Context::ResolveInheritance();*/ 25 25 26 AbstractCalendar* calendar = new AllLeapCalendar(); 26 AbstractCalendar* calendar = new GregorianCalendar(); 27 Date dd (*calendar, 2000, 05, 03, 00, 00, 00) ; 28 Date ddd(*calendar, 2030, 11, 02, 10, 33, 40) ; 27 29 28 30 Duration sc0 = Second * -65.3 + Minute * 117.5 + Hour * 65.9 + Day * 417.8 + Month * 16.5 - Year * 17.5; … … 37 39 std::cout << sc1 << std::endl; 38 40 std::cout << sc1 - sc0 << std::endl; 41 std::cout << ddd - dd << std::endl; 42 std::cout << dd << std::endl; 43 std::cout << (Time)dd << std::endl; 44 std::cout << calendar->getNbSecond(dd) << std::endl; 39 45 40 46 // On écrit l'arborescence résultante du traitement sur la sortie. -
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 -
XMLIO_V2/dev/dev_rv/src/XMLIO/date.hpp
r115 r116 120 120 121 121 void setMonth (int newmonth) { month = newmonth; } 122 void setYear (int newyear) { year = newyear; } 122 123 123 124 const AbstractCalendar& getRelCalendar(void) const { return (relCalendar); } … … 130 131 private : 131 132 132 const AbstractCalendar& relCalendar; // Calendrier lié à la date.133 const AbstractCalendar& relCalendar; // Calendrier lié à la Date. 133 134 int year, month, day, hour, minute, second; // Année, mois, ... 134 135
Note: See TracChangeset
for help on using the changeset viewer.