Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    258

    Turni in quinta su calendario

    SAlve, partendo da una data mi servirebbe sviluppare sul calendario la turnazione in quinta. In pratica se imposto che il turno inizia il 03/10/2014 lo script deve calcolarmi automaticamente questo:

    03/10/2014 sera
    04/10/2014 pomeriggio
    05/10/2014 Mattina
    06/10/2014 Notte
    07/10/2014 Riposo
    08/10/2014 sera
    09/10/2014 pomeriggio
    10/10/2014 Mattina
    11/10/2014 Notte
    12/10/2014 Riposo

    E continuare cosi... Sapete se gia esistono script simili che potrei adattare, oppure mi consigliate qualcosa su come iniziare?

  2. #2
    Se ti serve solo sapere la data senza dettagli come ora, minuti o secondi, allora ti propongo questo script che (senza funzioni temporali in PHP come date, mktime, strftime ecc.) calcola il giorno successivo. (Sto ipotizzando che il primo turno sia sempre 'sera'.)

    Codice PHP:
    $data '03/10/2014';
    $turni = array('sera','pomeriggio','Mattina','Notte','Riposo');

    $n_g_mesi = array(1=>31,28,31,30,31,30,31,31,30,31,30,31);
    list(
    $gg,$mm,$aa) = explode('/'$data);
    $gg = (int)$gg;
    $mm = (int)$mm;
    $n_g_q_mese =  $n_g_mesi[$mm];

    $numero_turni 10;

    $n count($turni);
    for(
    $i=0$i<$numero_turni$i++){
        echo 
    $data.' '.$turni[$i%$n]."<br />\n";
        
    $gg $gg%$n_g_q_mese+1;
        if(
    $gg==1){
            
    $mm $mm%12+1;
            
    $n_g_q_mese $n_g_mesi[$mm];
            if(
    $mm==1)
                
    $aa++;
                
        }
        
    $data str_pad($gg,2,'0',STR_PAD_LEFT).'/'.str_pad($mm,2,'0',STR_PAD_LEFT).'/'.$aa;


  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    258
    Ciao ZioLuffio, il tuo script fa esattamente quello che volevo, adesso me lo studio un po per capire come funziona. Ma ne approfitto per farti ancora qualche domanda.

    1) Se vorrei visualizzarlo sottoforma di calendario, devo agire solo css oppure bisogna apportare qualche modifica allo script?
    2) Siccome a me serve salvare questi dati ad ogni utente, che quindi avrà una data di inizio diversa, vorrei salvarla in un db tipo mysql, secondo te conviene creare una tabella per ogni utente o farne una generica per tutti?

    PS: grazie mille.

  4. #4
    1) Dipende. Che tipo di calendario vuoi visualizzare? È un calendario con tutti i turni o solo con i turni di un singolo? Lo script che ti ho proposto non fa tante cose, per esempio non calcola in alcun modo che giorno della settimana sia ciascuna data.
    2) Per come hai presentato il problema, in una tabella basta memorizzare semplicemente un utente e la data di inizio, perché tutte le date e i turni sono calcolati con quello script. Se cerchi altre specifiche, descrivi più approfonditamente il problema.

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    258
    Quote Originariamente inviata da ZioLuffio Visualizza il messaggio
    1) Dipende. Che tipo di calendario vuoi visualizzare? È un calendario con tutti i turni o solo con i turni di un singolo? Lo script che ti ho proposto non fa tante cose, per esempio non calcola in alcun modo che giorno della settimana sia ciascuna data.
    2) Per come hai presentato il problema, in una tabella basta memorizzare semplicemente un utente e la data di inizio, perché tutte le date e i turni sono calcolati con quello script. Se cerchi altre specifiche, descrivi più approfonditamente il problema.
    Ciao, visionando meglio lo script, mancano alcune cose, a me serve che ogni utente abbia il suo calendario, poi una volta che imposta la data di inizio, su calendario vengono segnati i vari turni (mattina,pomeriggio,etc..).

  6. #6
    Quote Originariamente inviata da sixdas Visualizza il messaggio
    Ciao, visionando meglio lo script, mancano alcune cose, a me serve che ogni utente abbia il suo calendario, poi una volta che imposta la data di inizio, su calendario vengono segnati i vari turni (mattina,pomeriggio,etc..).
    Ciao, il mio script già dava a ciascuno uno suo calendario (una data di inizio = un calendario). Rispondi a queste domande per piacere: Una volta impostata la data di inizio, quale turno viene scelto per primo? I turni si ripetono sempre uguali (come l'esempio) o possono essere presentarsi in un ordine diverso (es. utente1 -> sera pomeriggio mattina notte riposo; utente2 -> sera mattina notte pomeriggio riposo)?

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    258
    Una volta impostata la data iniziale i turni si ripetono sempre alla stesso ciclo come scritto nel primo post. I turni sono uguali per tutti gli utenti

    grazie

  8. #8
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Quote Originariamente inviata da ZioLuffio Visualizza il messaggio
    ti propongo questo script che (senza funzioni temporali in PHP come date, mktime, strftime ecc.)
    Ma sì, reinventiamo la ruota.
    E coi bisestili come la mettiamo?

  9. #9
    Quote Originariamente inviata da luca200 Visualizza il messaggio
    Ma sì, reinventiamo la ruota.
    E coi bisestili come la mettiamo?
    Eccoti accontentato ciccino
    Codice PHP:
    $data '03/10/2014';
    $turni = array('sera','pomeriggio','Mattina','Notte','Riposo');

    $n_g_mesi = array(1=>31,28,31,30,31,30,31,31,30,31,30,31);
    list(
    $gg,$mm,$aa) = explode('/'$data);
    $gg = (int)$gg;
    $mm = (int)$mm;
    $n_g_q_mese =  $n_g_mesi[$mm];

    $numero_turni 10;

    $n count($turni);
    for(
    $i=0$i<$numero_turni$i++){
        echo 
    $data.' '.$turni[$i%$n]."<br />\n";
        
    $gg $gg%$n_g_q_mese+1;
        if(
    $gg==1){
            
    $mm $mm%12+1;
            if(
    $mm==&& $aa%4==&& $n_g_q_mese==28){ // se l'anno è bisestile
                
    $mm 2;
                
    $gg $n_g_q_mese 29;
            }else{
                
    $n_g_q_mese $n_g_mesi[$mm];
                if(
    $mm==1)
                    
    $aa++;
            }
        }
        
    $data str_pad($gg,2,'0',STR_PAD_LEFT).'/'.str_pad($mm,2,'0',STR_PAD_LEFT).'/'.$aa;



    ...e poi questo script funzionerà perfettamente anche dopo il 2038
    Ultima modifica di ZioLuffio; 06-10-2014 a 11:01

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    258
    Ciao, ZioLuffio
    Volendo modificare il tuo script, per visualizzare i dati in formato json ho fatto in questo modo, ma ho problemi con il campo date. Puoi spiegarmi questo rigo

    Codice PHP:
    $data str_pad($gg,2,'0',STR_PAD_LEFT).'/'.str_pad($mm,2,'0',STR_PAD_LEFT).'/'.$aa
    Codice PHP:
    $return = array(                    
    'id' => 1,                     
    'title' => $turni[$i%$n],                     
    'start' => $data,                     
    'url' => www.sito.it                
    );

    echo 
    json_encode($return); 
    A me serve creare un struttura del genere:

    Codice PHP:
    events: [                
    {   
    title'Dinner',   start'2014-09-12T20:00:00'},
    {   
    title'Birthday Party',   start'2014-09-13T07:00:00'},
    {   
    title'Click for Google',   url'http://google.com/',   start'2014-09-28'}

    Ultima modifica di sixdas; 11-10-2014 a 12:58

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.