Jump to content

Aantal dagen tussen 2 datums uitrekenen


Wanted

Recommended Posts

Hallo,

Ik zoek een functie die het aantal dagen tussen 2 datums returnt. Ik heb gezocht op het SA:MP forum, maar ik kon niets nuttigs vinden.

Alvast bedankt,

Wanted.

hmmm ik kan wel zoiets maken, het enigste probleem is dat er schrikeljaren zijn en maanden met 28/29/30/31 dagen...

EDIT: Het lukt me messchien wel. :Y

EDIT2: Bijna af, alleen heb ik zit ik nog met een bug... :(

EDIT3: Het is nu af, maar er zitten denk ik bugs in. :cry:

Bewerkt: door GTAguillaume
Link to comment
Delen op andere websites

Hallo,

Ik zoek een functie die het aantal dagen tussen 2 datums returnt. Ik heb gezocht op het SA:MP forum, maar ik kon niets nuttigs vinden.

Alvast bedankt,

Wanted.

hmmm ik kan wel zoiets maken, het enigste probleem is dat er schrikeljaren zijn en maanden met 28/29/30/31 dagen...

EDIT: Het lukt me messchien wel. :Y

Als je dat wil maken, zou ik het fijn vinden.

In een spreadsheet, te vinden in b.v. (Open) Office, geef je twee datums op en trekt die van elkaar af. Het verschil kan je weergeven in wat je maar wilt.

Uhm, ik neem aan dat als dit topic geplaatst is in SA:MP Scripting, dat het niet om Office gaat. Ik vraag hier gewoon om een functie die je kan gebruiken in je gamemode.

Link to comment
Delen op andere websites

Ik denk dat het nu bug-vrij is:

stock GetDays(dag,maand,jaar,dag2,maand2,jaar2) //made by guillaume 
{
   new dagen;
   if(dag != dag2)
{
    if(dag < dag2)dagen +=  dag2-dag;
    else {
		dagen += dag2;
	    switch(maand)
		{

				case 1,3,5,7,8,10,12:dagen += 31-dag;
				case 2:
				{
					if(deelbaar(jaar,4)) dagen += 29-dag;
					else dagen += 28-dag;
				}
				case 4,6,9,11:dagen += 30-dag;
		}
	}
}
new jaartmp=jaar,maandtmp=maand;
   if(dag > dag2) maandtmp++;
while(maandtmp < maand2 || jaartmp < jaar2)
{
    switch(maandtmp)
	{
			case 1,3,5,7,8,10,12:dagen += 31;
			case 2:
			{
				if(deelbaar(jaartmp,4)) dagen += 29;
				else dagen += 28;
			}
			case 4,6,9,11:dagen += 30;
			default:
			{
			maandtmp=0;
			jaartmp++;
			}
	}
	maandtmp++;
}
   return dagen;
}

Je hebt dit ook nodig:

stock deelbaar(getal,door) if(floatround(floatdiv(getal,door), floatround_floor) == floatdiv(getal,door))return true; else return false; //made by guillaume 

Bewerkt: door GTAguillaume
Link to comment
Delen op andere websites

Sorry, maar als ik:

GetDays(13, 4, 2009, 14, 4, 2009)

gebruik, dan komt er 18 uit. Dit hoort volgens mij toch echt 1 te zijn. (Nog een klein bugje?)

EDIT: Laat maar. Heb hem zelf al opgelost. :puh:

Bewerkt: door Wanted
Link to comment
Delen op andere websites

Een reactie plaatsen

Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.

Gast
Op dit onderwerp reageren...

×   Je hebt text geplaatst met opmaak.   Opmaak verwijderen

  Only 75 emoji are allowed.

×   Je link is automatisch ingevoegd.   In plaats daarvan weergeven als link

×   Je vorige bewerkingen zijn hersteld.   Alles verwijderen

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent actief   0 leden

    • Er zijn hier geen geregistreerde gebruikers aanwezig.
×
×
  • Create New...