totale werktijd doorlopen

Status
Niet open voor verdere reacties.

EdjeCageman

Gebruiker
Lid geworden
24 okt 2011
Berichten
273
Beste mensen,

Ik ben bezig met een urenregistratie programmaatje, waarin ik mijn begintijd + eindtijd kan invoeren.
Nu heb ik de volgende code:
Code:
        public int id { get; set; }
        public DateTime worktime { get; set; }
        public int percent { get; set; }

        public Worker(int id, DateTime worktime, int percent)
        {
            this.id = id;
            this.worktime = worktime;
            this.percent = percent;
        }

Dus voor elk uur wil ik een object hebben, zodat er ook een percentage van loon bij kan worden gehouden (denk aan nachtdiensten en feestdagen etc) niet elk uur hoeft hetzelfde tarief te hebben natuurlijk
Nu wil ik een loopje maken, wat gewoon lukt. dmv datetime.addhour(1) maar als het een half uur betreft moet deze natuurlijk ook meegenomen worden.
Iemand een idee hoe ik dit kan doen?

Alvast bedankt :)
 
Je hebt toch al een "percentage"? 50% en je bent er.

Ik denk dat je een beetje vastzit in het idee dat je "papier" direct moet omzetten in een programmadesign. Vaak kun je beter kijken naar de essenties die je wil bereiken en dat als uitgangspunt nemen voor je design.
 
Bedankt Wampier voor je antwoord maar het was niet helemaal wat ik bedoeld.

Wat ik bedoelde is dat wanneer er iemand 5:30 uur heeft gewerkt, dat dat laatste half uur ook meegepakt wordt. Maar ik kan me niet echt bedenken hoe ik dit voor elkaar moet krijgen.
 
Maar dan kun je het aantal uren toch naar boven afronden? Mogelijk begrijp ik inderdaad niet helemaal waar je op vastloopt
 
Wampier, bedankt hoewel het niet helemaal was wat ik bedoelde, heb je me wel een tik in de goede richting gegeven :) Ik rond hem naar boven af, dus als er 7,5 uur is gewerkt heb ik 8x een percentage in een lijst.
Nu wil ik deze dus weer terugrollen, dat hij voor elke uur dat er is gewerkt een saldo terug geeft.
Ik heb nu:
Code:
            for (int i = 0; i < workedTime; i++)
            {
                double tempprice = (salary / 100) * percent[i];
                total += tempprice;
            }

Maar stel iemand heeft 0,5uur gewerkt, dan geeft hij nu nog het volledige salaris weer. Ik wil dat dit automatisch 'gezien' wordt als half uur ipv heel uur. (Percent is een List met percentages, workedTime zijn de gewerkte uren)

Hoop dat je nu beetje begrijpt ik wil.
 
Laatst bewerkt:
nevermind, nailed it :) Ik kan natuurlijk ook gwn een gemiddeld percentage van die dag nemen en dat door het salaris berekenen:

Code:
            foreach (int rate in percent)
            {
                percentAday += rate;
            }

            int rateOfTheDay = percentAday / percent.Count;

            total = ((salary * workedTime) * rateOfTheDay) / 100;
 
Dat kun je toch meenemen in je object? neem een 4de item bijvoorbeeld "uurvulling" en neem dat ook mee.

Persoonlijk werk ik liever met meer "solide" objecten.

Neem een object "DAG" en vul die met objecten "DAGDELEN"

Vervolgens neem je

"startijd deel"
"eindtijd deel"
"tarief deel"
"toeslagen"

en bereken je alles vanuit object "DAG". Op deze manier heb je meteen ook uren registratie e.d. Uren als gronddeel nemen is vaak onhandig en heeft ook weinig toegevoegde waarde over het algemeen. De objecten worden wat complexer, maar wel veel flexibeler.

Het object DAG kun je dan toewijzen aan elk type werknemer dat je definieert. SALARIS kan dan onderdeel zijn van het object werknemer, zonder dat het je design van DAG hoeft aan te passen.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan