C# methode DagenTeller

Status
Niet open voor verdere reacties.

GustaafDeTweede

Gebruiker
Lid geworden
20 mrt 2008
Berichten
14
Ik probeer een methode te schrijven die de volgende functionaliteit heeft:
*mogelijkheid voor het tellen van aantal, maandagen, dinsdagen, ... in een maand

Nu probeer ik het één en het ander met "DateTime" (DateTime.Today.DayOfWeek) maar ik ben mezelf in een hoek aan het werken, en men methode wordt als maar langer en langer.

Weet iemand soms een eenvoudige formule hiervoor?

Vriendelijke groet
 
De beste oplossing lijkt mij om een eigen Classe te ontwikkelen die als member een DateTime object heeft.

Daarna voorzie je functies die de specifieke dage / gegevens weergeven.

Dan hoef je dit maar een keer uit te programere, maar kan je de klasse blijven gebruiken.
 
Ik weet niet of dit de beste manier is maar onderstaande manier werkt wel.
Je geeft de maand en jaar op en de dag die je wilt tellen (dagen(2008, 03, "Monday");)

Met "DaysinMonthYear" kun je het aantal dagen in een opgegeven maand bepalen.
Ik heb vervolgens een for lus gemaakt die de hele maand door loopt en als de dag gelijk is aan de opgegeven dag dan verhoogt hij de counter met 1 en aan het einde retouneert hij de counter waarde.


public int dagen(int jaar, int maand, string dag)
{
int m = DateTime.DaysInMonth(jaar, maand);
int dagen = 0;
for (int i = 1; i < m; i++)
{
DateTime datum = new DateTime(jaar, maand,m);
if (datum.DayOfWeek.ToString() == dag)
{
dagen++;
}

}
return dagen;

}
 
Kheb u methode eens bekeken, dit lijkt hetgene ik zocht, ookal zit er nog een klein foutje in (hij controleerd telkens de zelfde dag) maar dit is zeker en vast een zeer goede stap in de juiste richting :thumb:
Tnx "Don at work" :thumb: :)
 
graag gedaan :-D

maar dat hij maar 1 dag controleert is geen foutje. De dag staat niet vast maar is variabel.
Dus als je het aantal maandagen en dinsdagen wilt weten die in de maand maart van 2008zitten dan roep je de methode gewoon 2 keer aan

bv
int maandag = dagen(2008,03,"Monday") ;
int dinsdag = dagen(2008,03,"Thuesday") ;
 
zoals jij het voorsteld kan ik vandaag niet weten hoeveel "maandagen" er zijn in de maand "april", daarvoor moet je nog een datum = datum.addDay(1); in de forlus steken. Maar het is te zien wat je wilt doen met de methode natuurlijk ;)
maar ik heb ze helemaal werkende gekregen zoals het mezelf bevalt ;)
tnx (again :)) :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan