Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

[Calendrier] Affichage si un mois comporte 5 vendredis


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    août 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : août 2007
    Messages : 197
    Points : 135
    Points
    135
    Par défaut [Calendrier] Affichage si un mois comporte 5 vendredis
    Bonjour à tous et toutes

    Je suis en train de faire une page relativement simple qui consiste à afficher un événement chaque vendredi.
    Tous les 1ers vendredi du mois ---->Evenement 1
    Tous les 2emes vendredi du mois ---->Evenement 2
    Tous les 3emes vendredi du mois ---->Evenement 3
    Tous les 4emes vendredi du mois ---->Evenement 4
    Et ca recommence le mois suivant, donc c'est purement statique.

    Rien de bien compliqué, c'est juste du HTML avec l'affichage d'un visuel

    Mais..... il y a des mois avec 5 vendredis comme celui d'août par exemple, je voudrai savoir si il y a une fonction qui pourrait me permettre d'afficher un visuel que si il y a 5 jours le mois considéré....


    Merci à vous tous

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    juin 2003
    Messages
    7 167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2003
    Messages : 7 167
    Points : 11 267
    Points
    11 267
    Par défaut
    vous pouvez tester cela avec la fonction https://secure.php.net/date.
    tester le jour de la semaine des jours 29, 30 et 31 du mois, cela correspond à des jours avec 5 fois le jours de le semaine dans le mois.

  3. #3
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    juin 2008
    Messages
    1 822
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : juin 2008
    Messages : 1 822
    Points : 3 015
    Points
    3 015
    Billets dans le blog
    7
    Par défaut
    Et ca recommence le mois suivant, donc c'est purement statique.
    Bonjour Bernard... Tu peux nous montrer ton code ? C'est vrai que si c'est du HTML purement statique, ça va vite être faux.
    Il va te falloir quelques balises PHP pas bien méchantes. Mais il faut qu'on parte de ton HTML pour t'aider.
    Mes billets de blog : un billet = une problématique précise
    It's easier to be friends with lots of people online than one person in person!

  4. #4
    Rédacteur/Modérateur
    Avatar de jreaux62
    Homme Profil pro
    Webdesigner
    Inscrit en
    août 2008
    Messages
    15 588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Arts - Culture

    Informations forums :
    Inscription : août 2008
    Messages : 15 588
    Points : 31 836
    Points
    31 836
    Par défaut
    Bonjour,

    un petit script :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <?php
    for( $mois=1; $mois<=12; $mois++ )
    {
    	$laDate = mktime(0, 0, 0, $mois, 1, date('Y'));
    	echo date( 'm/Y', $laDate).' : '.count_friday( $laDate ).' vendredis<br />';
    }
    function count_friday( $laDate )
    {
    	$count = 0;
    	$leMois = date('m', $laDate);
    	$lannee = date('Y', $laDate);
    	$nbre_jours = date('t', $laDate);
    	for( $jour=1; $jour<=$nbre_jours; $jour++ )
    	{
    		$date = mktime(0, 0, 0, $leMois, $jour, $lannee);
    		if( date('N', $date) == 5 ) // 1=lundi - 7=dimanche (5=vendredi)
    		{
    			$count++;
    		}
    	}
    	return $count;
    }
    ?>
    Renvoie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    01/2018 : 4 vendredis
    02/2018 : 4 vendredis
    03/2018 : 5 vendredis
    04/2018 : 4 vendredis
    05/2018 : 4 vendredis
    06/2018 : 5 vendredis
    07/2018 : 4 vendredis
    08/2018 : 5 vendredis
    09/2018 : 4 vendredis
    10/2018 : 4 vendredis
    11/2018 : 5 vendredis
    12/2018 : 4 vendredis
    "Si tu suis le chemin qui s'appelle « plus tard », tu arriveras à la place qui s'appelle « jamais »."
    François Camille Prévot (1910-1996), instituteur puis Directeur d'école et... mon grand-père.
    "Pose ta question, tu seras idiot une seconde. Ne la pose pas, tu seras idiot toute ta vie."
    Albert Einstein (1879-1955).
    Mes tutos DVP
    Gestion-Affichage de Nouvelles
    Affichage en tableau HTML
    Fonctions de redimensionnement d'images

  5. #5
    Modérateur
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    mars 2004
    Messages
    5 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : mars 2004
    Messages : 5 359
    Points : 14 056
    Points
    14 056
    Billets dans le blog
    9
    Par défaut
    Salut,

    en version objet cela donnerait quelque chose dans ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $count = array_fill_keys(range(1, 12), 0);
    $dates = new DatePeriod(new DateTime('first friday of january this year'), new DateInterval('P7D'), new DateTime('2018-12-31'));
    foreach ($dates as $d) {
        ++$count[$d->format('n')];
    }
    # Dans la Création, tout est permis mais tout n'est pas utile...

Discussions similaires

  1. [Dates] affichage encodage du mois en court
    Par dunbar dans le forum Langage
    Réponses: 1
    Dernier message: 17/08/2006, 12h51
  2. [Conception] Calendrier, affichage d'évènement
    Par grunk dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 29/07/2006, 11h34
  3. Affichage selon les Mois/Années
    Par cnguyen dans le forum Oracle
    Réponses: 5
    Dernier message: 05/07/2006, 11h55
  4. [Dates] affichage d'un mois en texte et francais
    Par dédéf dans le forum Langage
    Réponses: 11
    Dernier message: 30/05/2006, 16h09
  5. [Débutant]calendrier: affichage par 3 mois
    Par illyana dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/05/2006, 03h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo