[C++] Cate zile are un an?

Despre limbajul de programare C++ si biblioteca standard STL (forum moderat)
Post Reply
User avatar
Ovidiu Cucu
Fondator
Fondator
Posts: 3776
Joined: 11 Jul 2007, 16:10
Judet: Iaşi
Location: Iasi
Contact:

[C++] Cate zile are un an?

Post by Ovidiu Cucu » 29 Apr 2009, 14:17

Intrebare: Cate zile are un an?

Raspuns:Un an are 366 sau 365 de zile in functie daca este bisect sau nu.
Regulile care decid daca un an este bisect sunt urmatoarele:
  1. Daca anul se divide la 4 atunci este bisect (exemplu: anul 2008 este bisect);
  2. Exceptie de la regula 1: daca anul se divide la 100 atunci nu este bisect (exemplu: 1900 nu este bisect);
  3. Exceptie de la regula 2: daca anul se divide prin 400 atunci este bisect (exemplu: 2000 este an bisect).
Tinand cont de regulile de mai sus am putea scrie o functie care intoarce true daca un an dat este bisect...

Code: Select all

bool este_an_bisect(unsigned int an)
{
    return ((an % 4) == 0)        // regula nr.1
           && (((an % 100) != 0)  // regula nr.2
           || ((an % 400) == 0)); // regula nr.3
}
...cat si o functie care sa intoarca numarul de zile.

Code: Select all

unsigned int cate_zile_are_anul(unsigned int an)
{
    return este_an_bisect(an) ? 366 : 365;
}

Vezi si...
Next FAQ >>



Post Reply