Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    280

    [php] Script giorni lavorativi

    ciao a tutti, esiste uno script che mi trova la data dei prox 5giorni lavorativi?? Si considreano lavorativi i giorni da lunedi a venerdi, ad esempio :

    - Oggi domenica, giorni lavorativi sono Lunedi, martedi , mercoledi, giovedi e venerdi .

    - Oggi è martedi, giorni lavorativi sono Mercoledi, Giovedi, Venerdi, Lunedi e Martedi.

    E' possibile fare una cosa del genere??

    grazie anticipatamente.

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Codice PHP:
    <?php
    function giorniLavorativi($lavorativi)
    {
        
    // Calcolo del giorno di Pasqua fino all'ultimo anno valido
        
    for ($i=2006$i<=2037$i++) {
        
    $pasqua date('Y-m-d'easter_date($i));
        
    $array_pasqua[] = $pasqua;
        }

        
    // Calcolo le rispettive pasquette
        
    foreach($array_pasqua as $pasqua) {
            list (
    $anno,$mese,$giorno) = explode('-',$pasqua);
            
    $pasquetta mktime (0,0,0,date($mese),date($giorno)+1,date($anno));
            
    $array_pasquetta[] = $pasquetta;
        }

        
    // questi giorni son sempre festivi a prescindere dall'anno
        
    $giorniFestivi = array('01-01',
                               
    '01-06',
                               
    '04-25',
                               
    '05-01',
                               
    '06-02',
                               
    '08-15',
                               
    '11-01',
                               
    '12-08',
                               
    '12-25',
                               
    '12-26',
                               );

        
    // Mi calcolo il timestamp di domani
        
    $tsData strtotime('tomorrow');

        
    $feriali = array();
        
    $i 0;
        while (
    $i<$lavorativi) {
          
    $giorno_data date('w',$tsData); //verifico il giorno: da 0 (dom) a 6 (sab)
          
    $mese_giorno date('m-d',$tsData); // confronto con gg sempre festivi
          // Infine verifico che il giorno non sia sabato,domenica,festivo fisso o festivo variabile (pasquetta);        
              
    if ($giorno_data !=&& $giorno_data != && !in_array($mese_giorno,$giorniFestivi) && !in_array($tsData,$array_pasquetta) ) {
                
    $i++;
                
    // aggiungo all'array dei feriali
                
    $feriali[] = date('d-m-Y',$tsData); //converto il timestamp finale nel formato gg-mm-aaaa
                   
    }
          
    $tsData $tsData 86400;
        } 
    //fine while
        
    return $feriali;
    // fine funzione

    $giorni =  giorniLavorativi(5);
    foreach (
    $giorni as $giorno)
    echo 
    $giorno.'
    '
    ;
    ?>
    Testala e fammi sapere.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.