Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    intervallo date - giorni lavorativi

    salve,
    avrei bisogno di un aiuto.

    E' possibile, avendo una data1 e una data2, sapere quanti giorni lavorativi ci sono in quel dato intervallo di tempo?

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    87
    si può si può...
    ti ho fatto un piccolo script che va ottimizzato con qualche controllo tipo sulle date di input.

    Premessa. Lo script Calcola i giorni lavorativi togliendo i sabati e le domeniche dal periodo analizzato.. se devi inserire delle giornate di festa tipo natale pasqua etc.. , basta che le salvi in un array e fai i relativi controlli..

    ecco il codice:


    Codice PHP:
    <?php

    # Funzione per isolare anno,mese,giorno

    function esplodiData($data)
    {
    $ris=explode("/",$data);
    $data=array($ris[2],$ris[1],$ris[0]);
    return 
    $data;
    }

    # Date di origine.

    # Periodo di analisi - Le date si modificano qui o tramite form
    $origine1="1/4/2008"
    $origine2="25/7/2008";

    # Esplodo la data di partenza inserendola in un array in modo da avere anno,mese e giorno separati, che vengono
    # Utilizzati successivamente nel ciclo for.

    $data_start=esplodiData($origine1);
    $data_stop=esplodiData($origine2);


    # Calcolo Differenza in giorni tra le due date
    # Manca un controllo per vedere che la data di inizio sia piu grande di quella di fine

    $tmp2=$data_stop[0]."/".$data_stop[1]."/".$data_stop[2];
    $tmp1=$data_start[0]."/".$data_start[1]."/".$data_start[2];
    $differenza_giorni=(strtotime($tmp2) - strtotime($tmp1))/(86400); 
        
    # Contattore Giorni Festivi

    $festivi=0;

    # Ciclo for per scandagliare i giorni tra le due date e contare i giorni festivi ovvero SABATO E DOMENICA
    for($i=1;$i<$differenza_giorni;$i++)
    {
    # Trovo il nome del giorno abbreviato su una precisa data presente nell'intervallo di tempo tra le due date fornite.
    $custom_date date("D" ,mktime(000$data_start[1], $data_start[2] + $i$data_start[0]));

    # Controllo che il giorno sia sabato o domenica. Se è vero incrementa il contattore festivi di uno.
    if(($custom_date=="Sat") or ($custom_date=="Sun"))
    {
    $festivi++;
    }
    }

    # Trovo i giorni lavorativi effettivi
    echo "[b]Giorni Lavorativi:[/b] ".($differenza_giorni-$festivi);
    echo 
    "
    "
    ;
    echo 
    "[b]Giorni Festivi:[/b] ".$festivi;
    echo 
    "
    "
    ;
    echo 
    "E' stato Analizzato un periodo totale di [b]".$differenza_giorni."[/b] giorni, all'interno del periodo di tempo che va da [b]$origine1[/b] a [b]$origine2[/b]";

    ?>

  3. #3

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 © 2025 vBulletin Solutions, Inc. All rights reserved.