HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Egy hónap munka- és szabadnapjainak összeszámolása


Példaprogram letöltése

7730 bájt

Ebben a cikkben egy olyan példaprogramot készítünk, amely egy év és azon belül egy hónap megadása után megmondja, hogy az adott hónapban hány munkanap, illetve szabadnap van. A program használatával sokkal egyszerűbb dolgunk van, mintha a naptárban meg kellene számolnunk a napokat.

A munkanapok számát a WorkDays, az egyéb napok számát (szabad és munkaszüneti napok) a Holidays függvényekkel kérdezhetjük le.
private int WorkDays(int year, int month)
private int Holidays(int year, int month)
Ahhoz, hogy el tudjuk dönteni egy napról, hogy munkaszüneti nap-e, létre kell hoznunk egy újabb függvényt.
private bool IsHoliday(int month, int day)
Az ISHoliday függvény visszatérési értéke igaz, ha a paraméterekben megadott nap ünnepnap, munkanap esetén hamis.
A munkaszüneti napokat fel kell jegyeznünk. Ezt két tömb segítségével tesszük meg.
int[] months = {1,3,5,8,10,11,12,12};
int[] days = {1,15,1,20,23,1,25,26};
A months a hónapokat, a days a hónapokhoz tartozó napokat tárolja, azonos indexű helyen.
A WorkDays és Holidays függvények hasonló módon működnek, csak a lekérdezési feltételük más.
GregorianCalendar c = new GregorianCalendar();
int d=0;
for (int i=1; i <= c.GetDaysInMonth(year, month); i++)
  {
    bool weekend = false;
    DateTime dt = new DateTime(year,month,i);
    if (c.GetDayOfWeek(dt) == DayOfWeek.Sunday || c.GetDayOfWeek(dt) == DayOfWeek.Saturday) 
      weekend = true;
    if (IsHoliday(month, i) == false && weekend == false)
      d++; 
  }
Az aktuális nap meghatározásához a GregorianCalendar osztályt használjuk
Munkanapok esetén az olyan napokat kell megszámolnunk, amelyek nem esnek hétvégére és nem is ünnepnapok.
Amikor a szabadnapokat vizsgáljuk, akkor az előbbi feltételnek éppen az ellenkezőjére van szükség. A hétvégéket és az ünnepnapokat kell összeszámolnunk.

Cikksorozat

#IDKategóriaCikk címeSorozat
2535C#Oracle adatbázis-elérés alapjai1. rész
2546C#SQL utasítások végrehajtása2. rész
2557C#Tárolt eljárások és függvények fejlesztése3. rész
2565C#Csomagok fejlesztése4. rész
2573C#Adatbázis triggerek fejlesztése5. rész
2581C#Kivételek kezelése PL/SQL-ben6. rész
3276C#Kurzorok deklarálása PL/SQL-ben7. rész
3297C#Tömb adattípus létrehozása és kezelése PL/SQL-ben8. rész
3326C#Adatbevitel tömb-adattípussal rendelkező oszlopokba9. rész
3357C#Adattárolás beágyazott tábla-típusú oszlopokban10. rész
3388C#Adatok beszúrása beágyazott táblákba11. rész
3418C#Index létrehozása PL/SQL-ben12. rész
3444C#Szekvenciák használata13. rész
3488C#Adatok betöltése állományokból14. rész
1765DelphiOracle adatbázis-elérés alapjai15. rész
1774DelphiSQL utasítások végrehajtása16. rész
1784DelphiTárolt eljárások és függvények fejlesztése17. rész
1794DelphiCsomagok fejlesztése18. rész
1803DelphiAdatbázis triggerek fejlesztése19. rész
1815DelphiKivételek kezelése PL/SQL-ben20. rész
3256DelphiKurzorok deklarálása PL/SQL-ben21. rész
3287DelphiTömb adattípus létrehozása és kezelése PL/SQL-ben22. rész
3318DelphiAdatbevitel tömb-adattípussal rendelkező oszlopokba23. rész
3348DelphiAdattárolás beágyazott tábla típusú oszlopokban24. rész
3377DelphiAdatok beszúrása beágyazott táblákba25. rész
3408DelphiIndex létrehozása PL/SQL-ben26. rész
3436DelphiSzekvenciák használata27. rész
3467DelphiAdatok betöltése állományokból28. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2003 évkönyv 115. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |