GMOT
Nieuws:
 
*
Welkom, Gast. Alsjeblieft inloggen of registreren. 18 Maart 2019, 17:35:41


Login met gebruikersnaam, wachtwoord en sessielengte


Pagina's: 1 [2]
  Print  
Advertenties


Sunnywout
Infinity
*********

Berichten: 17.708


speel mijn game


Bekijk profiel WWW
« Antwoord #15 Gepost op: 21 Oktober 2015, 21:50:46 »

if (
 (dag == vrijdag && uur > 18) ||
 (dag == zaterdag) ||
 (dag == zondag) ||
 (dag == maandag && uur < 7) {
  toeslag();
}

Dit kost je vele malen minder CPU dan wat je hiervoor probeert te bereiken.
Gelogd

shitposting is a lifestyle, not a disease

Uther
Look mum, I can post!
*

Berichten: 20


Bekijk profiel
« Antwoord #16 Gepost op: 21 Oktober 2015, 21:54:45 »

Dat werkt in dat geval, maar de begin- en einddatum zijn aanpasbaar. Tongue
Gelogd

Sunnywout
Infinity
*********

Berichten: 17.708


speel mijn game


Bekijk profiel WWW
« Antwoord #17 Gepost op: 21 Oktober 2015, 22:16:53 »

Dat werkt in dat geval, maar de begin- en einddatum zijn aanpasbaar. Tongue
Gewoon snelcursus Java bij je product leveren.
Gelogd

shitposting is a lifestyle, not a disease

Robbai
Pretty addicted
*******

Berichten: 3.299


Bekijk profiel
« Antwoord #18 Gepost op: 21 Oktober 2015, 22:19:28 »

Gewoon snelcursus Java bij je product leveren.

Wouter :')
Gelogd

ericlegomeer
King of the hill
******

Berichten: 1.662


http://xkcd.com/386/


Bekijk profiel
« Antwoord #19 Gepost op: 22 Oktober 2015, 00:17:13 »

Dat werkt in dat geval, maar de begin- en einddatum zijn aanpasbaar. Tongue
Wat bedoel je hier precies mee? Ik denk dat je te veel focust op met datums te willen werken, terwijl jouw probleem volgens mij voornamelijk slaat op dagen van de week. Bedoel je dus eigenlijk gewoon dat er een begin dag + tijd (bijv. woensdag 12:00) en een eind dag + tijd (bijv. vrijdag 15:00) op gegeven moet worden? Waartussen dan toeslag betaald moet worden en erbuiten niet?

Merk op dat ik met 'dag' doel op 'dag van de week'

Als je dat bedoelt, dan zie je hopelijk in dat de hele datum buiten beschouwing laten de boel sterk vereenvoudigt (zoals in Wouters voorbeeld). Stel je hebt een week:
zo ma di wo do vr za
En daarin moet je zo'n toeslag/geen-toeslag verdeling aangeven (voor het gemak even zonder tijden, enkel met dagen*). Bijvoorbeeld:
zo ma di wo do vr za
Dan is dit een kwestie van vergelijken of:
huidigedag => woensdag && huidigedag <= vrijdag
Je kunt dit zo goed als letterlijk in Java gooien** aangezien de dagen van de week de volgende waarden hebben:
SUNDAY    = 1;
MONDAY    = 2;
TUESDAY   = 3;
WEDNESDAY = 4;
THURSDAY  = 5;
FRIDAY    = 6;
SATURDAY  = 7;

Dus vergelijken of bijvoorbeeld donderdag (5) tussen woensdag (4) en vrijdag (6) ligt, is letterlijk controleren of '5 >= 4 && 5 <= 6' waar is of niet, wat het is.

Nu kun je denken 'ja, maar wat nou als ik zo doe:'
zo ma di wo do vr za
1  2  3  4  5  6  7

Dus de begin dag op vrijdag en de eind dag op maandag (zoals in jouw voorbeeld). Hierbij zal je controle net iets anders zijn, aangezien je nu moet kijken of huidigedag >= vrijdag || huidigedag <= maandag.

Als we deze beide situaties bekijken, hebben we de volgende twee vergelijkingen verzameld:
huidigedag >= begindag && huidigedag <= einddag
en
huidigedag >= begindag || huidigedag <= einddag
Het enige wat je nog uit moet zoeken, is wanneer je de && moet gebruiken en wanneer de ||. Het antwoord hierin ligt hem weer in de dagen van de week. Bekijk bijvoorbeeld eens het verschil tussen deze twee intervallen:
zo ma di wo do vr za
1  2  3  4  5  6  7
zo ma di wo do vr za

Beiden hebben als begin en eind dagen de maandag en de vrijdag. Echter, de ene heeft als begin dag maandag (2) en eind dag vrijdag (6), terwijl de ander begint op vrijdag (6) en eindigt op maandag (2). Door simpelweg te kijken welke groter is (begin of eind), kun je dus bepalen of je een && of || dient te gebruiken.

Hopelijk bedoelde je het in deze richting en heb je dus iets aan dit antwoord ^^ Mocht je het totaal anders bedoelen, zorg dan voor een iets duidelijkere uitleg van wat je bedoelt en dan kunnen we je weer een stukje verder helpen Smiley Mocht je een deel van de bovenstaande tekst niet begrijpen, dan kun je dat ook gewoon aangeven en dan is dat hopelijk te verduidelijken Wink

*Tijden kun je eenvoudig toevoegen door te controleren of de dag die je checkt gelijk is aan een van de grensdagen. Als dit namelijk het geval is, dan moet je de tijd controleren aan welke kant je valt.
**Dit zal niet door iedereen gewaardeerd worden aangezien je op de onderliggende waardes gaat steunen. Er valt ook wat voor te zeggen dat weekdagen dusdanig met elkaar te vergelijken moeten zijn, maar voorzichtigheid is geboden.
Gelogd



Uther
Look mum, I can post!
*

Berichten: 20


Bekijk profiel
« Antwoord #20 Gepost op: 22 Oktober 2015, 14:25:34 »

Bedankt voor je reactie! Smiley

Ik heb het op die manier geprobeerd, en wat betreft de dagen werkt het, ik kwam er alleen niet meer uit met het controleren van de tijden. :/

Voor nu heb ik dus gewoon gekozen om de dagen en tijden als vaste waarden in de code te zetten en me te concentreren op de rest van het project (deadlines Sad), om daarna nog eens te kijken hoe ik dit beter kan aanpakken.
« Laatste verandering: 22 Oktober 2015, 14:29:52 door Uther » Gelogd

@-wout
Administrator
Approaching infinity
*********

Berichten: 9.426



Bekijk profiel WWW
« Antwoord #21 Gepost op: 23 Oktober 2015, 20:15:01 »

Precies wat Eric aangeeft zal ik ook doen. Eerst de tijd/datum die je wilt vergelijken omzetten naar een Calendar/Date object. Vervolgens opvragen wat de tijd is, en welke dag van de week dat is.

Je code heeft slechts twee dingen die moeten worden gecontroleerd. Je data moeten voldoen aan één voorwaarde: De 'begindag' moet altijd kleiner zijn dan de 'einddag'.

Vervolgens bereken je op welke dag van de week de geselecteerde datum ligt (zie Eric's bericht). Je hebt dan 3 opties:

1) De dag is kleiner dan de begindag en tijd: meer betalen
2) De dag is groter dan de einddag en tijd: meer betalen
3) Geen van bovenstaande: niet meer betalen

(in die volgorde).
Gelogd


Advertenties
Pagina's: 1 [2]
  Print  

 
Ga naar:  

Powered by SMF 1.1.21 | SMF © 2006-2011, Simple Machines | Smartphoneversie bekijken

Dilber MC Theme by HarzeM