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

    Conteggi se c'è o no il mese agosto

    Buonasera a tutti

    Allora, ho una piccolissima difficoltà..

    Vorrei fare il calcolo che, quando un abbonato mette valido da gennaio a settembre, se è incluso agosto ed è chiuso dovrebbe passare la scadenza anzichè a settembre in ottobre.

    Faccio esempio:
    - Se metto da settembre a febbraio fanno 6 mesi e non c'è nè è incluso agosto e quindi rimane 6 mesi valido da settembre a febbraio
    - Se metto da marzo a ottobre fanno 8 mesi, c'è AGOSTO ed è chiuso e quindi, deve passare da marzo a novembre (sostituto agosto in settembre)

    Non so se mi spiego, avete capito per caso?
    Cioè se mettessi valido da marzo a ottobre e ha pagato per 8 mesi ossia usabile:
    MARZO
    APRILE
    MAGGIO
    GIUGNO
    LUGLIO
    AGOSTO - chiuso -
    SETTEMBRE
    OTTOBRE

    Agosto è chiuso, il sistema non vorrebbe bruciare il mese di agosto che è chiuso e allora lo anticipa così
    MARZO
    APRILE
    MAGGIO
    GIUGNO
    LUGLIO
    AGOSTO - chiuso -
    SETTEMBRE
    OTTOBRE
    NOVEMBRE

    Com'è lo specifico codice PHP

    Grazie mille
    Cristiano

  2. #2
    Ho elaborato questa funzione. Occhio che i mesi sono compresi (se gli passi "1,3" significa "da gennaio a marzo INCLUSO", quindi tre mesi).

    Codice PHP:
        function contaMesi($meseInizio$meseFine)
        {
            
    $elencoMesi = array();
            if(
    $meseFine $meseInizio){
                for(
    $i=$meseInizio;$i<=12;$i++){
                    
    $elencoMesi[] = $i;
                }
                for(
    $i=1;$i<=$meseFine;$i++){
                    
    $elencoMesi[] = $i;
                }
            }
            else{
                for(
    $i=$meseInizio;$i<=$meseFine;$i++){
                    
    $elencoMesi[] = $i;
                }
            }
            
    $totaleMesi count($elencoMesi);
            if(
    in_array(8$elencoMesi)){
                
    $totaleMesi--;
            }
            return 
    $totaleMesi;
        }
        
        echo 
    'Numero mesi da gennaio a luglio: '.contaMesi(1,7).'<br />';
        echo 
    'Numero mesi da gennaio a agosto: '.contaMesi(1,8).'<br />';
        echo 
    'Numero mesi da gennaio a settembre: '.contaMesi(1,9).'<br />';
        echo 
    'Numero mesi da luglio a settembre: '.contaMesi(7,9).'<br />';
        echo 
    'Numero mesi da dicembre a gennaio: '.contaMesi(12,1).'<br />';
        echo 
    'Numero mesi da dicembre a luglio: '.contaMesi(12,7).'<br />';
        echo 
    'Numero mesi da dicembre a settembre: '.contaMesi(12,9).'<br />';
        echo 
    'Numero mesi da settembre a febbraio: '.contaMesi(9,2).'<br />';
        echo 
    'Numero mesi da marzo a ottobre: '.contaMesi(3,10).'<br />'
    Pensate i programmi a librerie, e innalzate il livello d'astrazione

  3. #3
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,133
    Codice PHP:
    function contaMesi($meseInizio$meseFine)
        {
            if(
    $meseFine $meseInizio){
                
    $meseFine +=12;
            }
            
    $totaleMesi $meseFine $meseInizio 1;
            if (
    $meseInizio <= <= $meseFine$totaleMesi--;
            if (
    $meseInizio <= 20 <= $meseFine$totaleMesi--;
        } 
    Naturalmente devi essere certo che meseInizio e meseFine siano compresi fra 1 e 12.
    P.S. non so se i test scritti in quel modo vengono accettati... comunque il concetto è chiaro mi pare

  4. #4
    Quote Originariamente inviata da luca200 Visualizza il messaggio
    Codice PHP:
            if ($meseInizio <= <= $meseFine$totaleMesi--;
            if (
    $meseInizio <= 20 <= $meseFine$totaleMesi--; 
    manca l'operatore (and/or)?
    Pensate i programmi a librerie, e innalzate il livello d'astrazione

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