Aantal maandagen in een maand invoegen

Status
Niet open voor verdere reacties.

Frenske123

Terugkerende gebruiker
Lid geworden
2 jul 2007
Berichten
1.267
Hallo,

Ik wil de maandagen van een maand naar de maand erop kopiëren, maar loop steeds tegen probleem aan dat er een dag te weinig wordt ingevoegd (indien bijv. maandag 5x in een maand voorkomt )
Of dat een maandag die bijv. bij september(1e maandag van september) hoort in maand augustus wordt ingevoegd.

Iemand een oplossing hiervoor?
onderstaande als voorbeeld, in praktijk werk ik met
PHP:
first monday of next month
enz


PHP:
// 4 maandagen in maand 
$maandag1 = "2016-09-05";
$maandag2 = "2016-09-12";
$maandag3 = "2016-09-19";
$maandag4 = "2016-09-26";
$maandag5 = "2016-10-03";

echo $maandag1."<br>";
echo $maandag2."<br>";
echo $maandag3."<br>";
echo $maandag4."<br>";

$maand_van = "09"; // sep
$maand_naar = "10"; //okt

if ($maand_van ==$maand_naar) {
    echo "$maandag5<br>";
} else {
    echo "Geen dag 5 (2016-10-03) , deze valt in volgende  maand, dus geen dag,is OK ";
}

echo "<hr>";

//5 maandagen in maand
$maandag1 = "2016-08-01";
$maandag2 = "2016-08-08";
$maandag3 = "2016-08-15";
$maandag4 = "2016-08-22";
$maandag5 = "2016-08-29";

echo $maandag1."<br>";
echo $maandag2."<br>";
echo $maandag3."<br>";
echo $maandag4."<br>";

$maand_van = "09"; // sep
$maand_naar = "10"; //okt

if ($maand_van ==$maand_naar) {
    echo "$maandag5<br>";
} else {
    echo "Geen dag 5 (2016-08-29), niet OK , dag 5 hoort bij maand augustus";
}


Uitvoer zou moeten zijn

2016-08-01,
2016-08-08,
2016-08-15,
2016-08-22,
2016-08-29

Hierboven staan 2 voorbeelden en 2 condities, in de praktijk is dat uiteraard een.
verder kan ik misschien eerst het aantal maandagen (4 of 5) dat in een bepaalde maand gaan tellen
als 4 maandagen in een maand..
als 5 maandagen in een maand.
 
Laatst bewerkt:
He Frenske,

Ik wil je graag helpen alleen loop ik al vast op jou eerste zin "Ik wil de maandagen van een maand naar de maand erop kopiëren"
Ik heb namelijk geen idee wat je hiermee bedoelt.

Zou je jou vraag iets anders kunnen formuleren het liefst in 1 zin?
 
Hoi,


Ik haal een datum uit de database bijv 2015-08-03 , maandag 3 augustus 2015

$1= first monday of next month
$2=second monday of next month
$3=third monday of next month
$4=fourth monday of next month

$5 fifth monday of next month


die doe ik met
$insert = $mysqli->query("INSERT $1.... naar een volgende maand kopiëren
$insert = $mysqli->query("INSERT $2....
enz..

Maandag kan 4 of 5 keer voorkomen in een maand, dus daar is de > insert fifth monday of next month <
afh. van.

Komt maadag 4 x voor in een maand >, insert 1 t/m 4 . komt een 5e maal voor insert ook fifth monday of next month

Een script wat berekend hoeveel bijv. maandagen er in een bepaalde maand voorkomen zou ook een uitkomst zijn.

---------------------------------------------------------------------------------------------------------------

In een zin komt bijv. maandag 4 x in een maand voor doe dit, anders doe niks, geld ook voor dinsdag, woensdag, en de overige 4 weekdagen
 
Laatst bewerkt:
He Frenske,

Kijk hier kan ik wel wat mee:
"Een script wat berekend hoeveel bijv. maandagen er in een bepaalde maand voorkomen zou ook een uitkomst zijn."

PHP:
date_default_timezone_set('Europe/Amsterdam');


function maandagen($month,$year)
{
	$maandagen=0;
	$total_days=cal_days_in_month(CAL_GREGORIAN, $month, $year);
	for($i=1;$i<=$total_days;$i++)
	if(date('N',strtotime($year.'-'.$month.'-'.$i))==1)
	$maandagen++;
	return $maandagen;
}
echo maandagen(4,2015);
 
He Frenske,

Kijk hier kan ik wel wat mee:
"Een script wat berekend hoeveel bijv. maandagen er in een bepaalde maand voorkomen zou ook een uitkomst zijn."

PHP:
date_default_timezone_set('Europe/Amsterdam');


function maandagen($month,$year)
{
	$maandagen=0;
	$total_days=cal_days_in_month(CAL_GREGORIAN, $month, $year);
	for($i=1;$i<=$total_days;$i++)
	if(date('N',strtotime($year.'-'.$month.'-'.$i))==1)
	$maandagen++;
	return $maandagen;
}
echo maandagen(4,2015);

Bedankt,

ff een vraagje voor zekerheid , ==1) zal maandag zijn, 2 dinsdag enz
(4,2015) 4 is april 2015
 
Mooi,

Omdat Maand en jaar en dagen kunnen verschillen maak ik er dit van, opmerkingen welkom.

PHP:
date_default_timezone_set('Europe/Amsterdam');
$month = 8;
$year = 2015;
 
function maandagen($month,$year)
{
    $maandagen=0;
    $total_days=cal_days_in_month(CAL_GREGORIAN, $month, $year);
    for($i=1;$i<=$total_days;$i++)
    if(date('N',strtotime($year.'-'.$month.'-'.$i))==6)
    $maandagen++;
    return $maandagen;
}
echo maandagen($month,$year );

Ik zal er mee aan de slag gaan ,Stefanz Bedankt !

edit

6 zal ook een var moeten worden i.v.m. andere dag bijv. dinsdag.
 
Laatst bewerkt:
Het lukt mij alleen ff niet om de var goed te krijgen, hier tijdelijk $dagx genoemd, er zullen ' tekens niet goed staan?



PHP:
$dagx = $weekdag // van database

.$i))== '.$dagx.')
 
Helaas geeft het script voor januari 2017 4 maandagen

$month = 1;
$year = 2017;

uitkomst 4

Monday 02-January-2017
Monday 09-January-2017
Monday 16-January-2017
Monday 23-January-2017

30 jan wordt hier niet geteld

edit:

Sorry, stom foutje van mij..verkeerde dag ingegeven
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan