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 : 12525
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} TRI PAR INSERTION
Les listes triées sont très pratiques pour des quantités de données limitées : une liste semble pouv...

{C / C++ / C++.NET} ALGORITHME DE TRI D'UN TABLEAU PAR ORDRE CROISSANT OU DÉCROISSANT.
Bonjour, Le code source que je vais présenter est simple mais on y pense pas tout le temps. Il cla...

{Visual Basic, VB6, VB.NET, VB 2005} SÉRIALISTION - DÉSERIALISATION DE TABLEAUX ET COLLECTIONS
Après la source pour la sérialisation - désérialisation d'une LameGrid (que j'ai amélioré d'ailleurs...

{Delphi} UTILISER LES COMPOSANTS PAR LEURS NUMÉROS
Le principe : 1. Parcourir tous les composants d'une forme. 2. Y choisir le composant voulu et l'i...

{Javascript / DHTML} MOOTABLEAU
Une classe mooTools qui transforme une balise table en un ensemble div/tables qui permet de visualis...

{Visual Basic, VB6, VB.NET, VB 2005} JEU DE PENDU (COUIC 1 DE +)
Lundi, 01 Février 2010 04:58 un petit jeu de pendu réalisé sous vb 2008 express But du jeu : ...

{PHP} EXÉCUTER DES REQUETE STYLE SQL SUR UN ARRAY
La classe myArray, pour l'instant en version "j'ai codé comme un cochon" permet l'exécution de requê...

{Javascript / DHTML} JEU DE COULEURS DANS UN TABLEAU À 3 DIMENSION
Un tableau à 3 dimensions(Plusieurs tableau de 2 dimensions) des couleurs existante sur un PC. Jusqu...