Les Snippets

Connexion

Obtenir toutes les dates valides comprises entre 2 dates

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 20/04/2006 16:22:58 et initié par malalam [Liste]
Date de mise à jour : 28/09/2006 11:47:02
Vue : 11106
Catégorie(s) : Date & Heure, Algorithme
Langages dispo pour ce code :
- PHP 3, PHP 4, PHP 5
- VB6
- Windev



Langage : PHP 3 , PHP 4 , PHP 5
Date ajout : 20/04/2006
Posté par malalam [Liste]
DateMAJ : 28/09/2006
<?php
/**
* function getDatesBetween
* renvoie un tableau contenant toutes les dates, jour par jour,
* comprises entre les deux dates passées en paramètre.
* NB : les dates doivent être au format aaaa-mm-dd (mais on peut changer le parsing)
* @param (string) $dStart : date de départ
* @param (string) $dEnd : date de fin
* @return (array) aDates : tableau des dates si succès
* @return (bool) false : si échec
*/
function getDatesBetween ($dStart, $dEnd) {
    $iStart = strtotime ($dStart);
    $iEnd = strtotime ($dEnd);
    if (false === $iStart || false === $iEnd) {
        return false;
    }
    $aStart = explode ('-', $dStart);
    $aEnd = explode ('-', $dEnd);
    if (count ($aStart) !== 3 || count ($aEnd) !== 3) {
        return false;
    }
    if (false === checkdate ($aStart[1], $aStart[2], $aStart[0]) || false === checkdate ($aEnd[1], $aEnd[2], $aEnd[0]) || $iEnd <= $iStart) {
        return false;
    }
    for ($i = $iStart; $i < $iEnd + 86400; $i = strtotime ('+1 day', $i) ) {
        $sDateToArr = strftime ('%Y-%m-%d', $i);
        $sYear = substr ($sDateToArr, 0, 4);
        $sMonth = substr ($sDateToArr, 5, 2);
        $aDates[$sYear][$sMonth][] = $sDateToArr;
    }
    if (isset ($aDates) && !empty ($aDates)) {
        return $aDates;
    } else {
        return false;
    }
}

$aDates = getDatesBetween ('2006-09-01', '2006-10-31');
echo '<pre>', print_r ($aDates), '</pre>';
?>
Langage : VB6
Date ajout : 21/04/2006
Posté par Gobillot [Liste]

 '// renvoie un tableau() de type Date
 Private Function getDatesBetween(dStart As Date, dEnd As Date) As Date()
     Dim i As Integer
     Dim d As Date
     If dStart > dEnd Then Exit Function
     ReDim Dates(Int(dEnd - dStart)) As Date
     For d = dStart To dEnd
         Dates(i) = d
         i = i + 1
         Next
     getDatesBetween = Dates
 End Function
 
 
 '// UTILISATION:
     Dim i   As Integer
     Dim dt1 As Date
     Dim dt2 As Date
     Dim d() As Date
 
     dt1 = "01/01/2006"
     dt2 = "30/03/2006"
     d = getDatesBetween(dt1, dt2)
     
 '// CONTROLE dans une ListBox:
     If Not (Not d) Then
        List1.Clear
        For i = 0 To UBound(d)
            List1.AddItem d(i)
            Next i
        Else
        List1.Clear
        End If
 
 
Langage : Windev
Date ajout : 05/05/2006
Posté par BURLOTJ [Liste]

FONCTION iListeDateEntreDate(LOCAL sDateDebut,LOCAL sDateFin, tDate)
iInd est un entier

iDebut est un entier
iFin est un entier
iNbreDate est un entier = 0

iNbreDate=0
SI DateValide(sDateDebut) ET DateValide(sDateFin) ALORS

   iDebut = DateVersEntier(sDateDebut)
   iFin = DateVersEntier(sDateFin)
   POUR iInd=iDebut+1 A iFin-1
       TableauAjoute(tDate, EntierVersDate(iInd)
       iNbreDate++

   FIN

FIN
RENVOYER iNbreDate
 
//Utilisation
tDate est un Tableau de 0 chaînes
iTotal est un entier = 0
sDate1, sDate2 sont des chaînes
sDate1="20071231"
sDate2="20080301"
iTotal=iListeDateEntreDate(sDate1, sDate2, tDate)



Snippets en rapport avec : Tableau, Dates, Validité, Différence, Range



Codes sources en rapport avec : Tableau, Dates, Validité, Différence, Range

{Visual Basic, VB6, VB.NET, VB 2005} COMPRESSION
Fonction pour comprimer un tableau de byte...

{Visual Basic, VB6, VB.NET, VB 2005} DIFFÉRENCE ENTRE DEUX HEURES DE FORMAT HH:MM:SS
Renvoie une valeur si le temps 1 est inferieur (0), égale (1) ou supérieur (2) au temps 2 ...

{Visual Basic, VB6, VB.NET, VB 2005} EXPORT TABLEAU EXCEL EN BBCODE
Petite source en vba excel permettant d'exporter le tableau Excel en BBcode (tableau basic, seul l'é...

{SQL} CALCUL UNE DIFFÉRENCE DE DATE EN FONCTION DE JOURS FÉRIÉS/TRAVAILLÉS ET DE PLAGE HORAIRE
Cette fonction permet de calculer une différence en minutes entre deux dates/heures, dans le cadre (...

{Visual Basic, VB6, VB.NET, VB 2005} TRI AVEC VISUALISATION
Voila une source pour trié des chiffres dans un tableau a 1 dimensions. Il y a plusieurs méthodes de...

{Javascript / DHTML} TRI DÉCROISSANT ET CROISSANT D'UN TABLEAU DYNAMIQUE REMPLIE PAR UN INTERNAUTE
Coucou tout le monde, bonje ne l'ai pas trouvé sur ce site donc peut-être qu'il n'y est pas : j'a...

{Javascript / DHTML} PALETTE DE COULEURS
Une palette de couleurs dans un bloc de type div. Le script est fait de trois boucles les unes dan...

{Javascript / DHTML} TEXTAREA : LIMITER LA LARGEUR ET LA HAUTEUR DU TEXTE SAISIE
La plupart des contrôles de saisie dans un champ textarea se limite à la longueur du texte. L'int...

{PHP} CONTRÔLE DE LA CONFORMITÉ D'UN NUMÉRO DE CARTE BANCAIRE (ALGORITHME DE LUHN)
Voici une fonction simple qui permet de contrôler la conformité d'un numéro de carte bancaire. Il...

{JAVA / J2EE} NOMBRES PREMIERS PAR LE CRIBLE D'ERATOSTHÈNE VERSION OPTIMISÉE
Pour trouver tous les nombres premiers de 2 à Max, le principe est le suivant : 1. Construire l'ens...