1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| class EquinoxList
{
public:
void registerDay(Date const & d, int year)
{
days_.insert(std::make_pair(year, d));
}
Date const & findByYear(int year) const
{
std::map<int, Date>::const_iterator it=days_.find(year);
if(it == days_.end())
return Date(0); // une date réputée invalide :-D
return it.second;
}
bool exists(int year) const
{
return days_.find(year)!= days_.end();
}
// exemple très mal fait d'une fonction qui pourrait
// te permettre de récupérer la liste des équinoxes
// dans un fichier :D
static void readList(std::string const & filename)
{
days_.clear(); // pour le cas où on aurait déjà lu un fichier
// et que les dates ne correspondraient pas:D
std::ifsream ifs(filename.c_str());
Date date;
int year;
while(ifs>>date>>year)
registerDay(date, year);
}
private:
static std::map<int, Date > days_;
}; |