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

    Java e L'ora legale: HELP!!!!!!

    Ciao a tutti.

    Avrei bisogno di un aiuto.

    Esiste un metodo, tra le varie classi che gestiscono la data, per sapere se la data di sistema è soggetta a ora legale?

    Mi spiego con un esempio:

    Supponiamo di eseguire tale codice:
    "
    GregorianCalendar oggi=new GregorianCalendar();

    if(oggi."oralegale"()) System.out.println("La data ha l'ora legale");
    else System.out.println("La data ha l'ora solare");
    "

    Oggi l'output sarebbe :
    "La data ha l'ora legale"

    Sabato scorso l'output sarebbe stato:
    "La data ha l'ora solare"

    Chi riesce a inserire il nome del metodo al posto della stringa
    "oralegale" mi farebbe un grosso aiuto.

    Eumene

  2. #2
    Penso di no , dato che non cambiano in giorni fissi e quindi è un pò difficile stabilirlo per mezzo di un metodo
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

  3. #3
    codice:
    import java.util.*;
    
    public class Prova5{
    private static Calendar cal;
    public static String oraLegale(){
    	cal=Calendar.getInstance();
    	String ora="Ora ";
    	int day=cal.get(Calendar.DAY_OF_MONTH );
    
    	int month=cal.get(Calendar.MONTH);
    	System.out.println("Day "+day +" month "+month +" Year "+cal.get(Calendar.YEAR));
    	if(month<Calendar.APRIL){
    		if(month==Calendar.MARCH && ultimaSettimana(month,day))
    		ora+=" Legale";
    		else ora+=" Solare";
    		}else if(month>Calendar.SEPTEMBER){
    			if(month==Calendar.OCTOBER && !ultimaSettimana(month,day))
    					ora+=" Legale";
    			else ora+=" Solare";
    			}else ora+=" Legale";
    
    	return ora;
    
    	}
    public static boolean ultimaSettimana(int month,int day){
    	int d=day;
    	int day_week=cal.get(Calendar.DAY_OF_WEEK );
    
    	if(day_week==Calendar.SUNDAY && (d+7)>giorniMese(month))
    		return true;
    	else if(d>trovaDomenica(d,month,day_week)) return true;
    	return false;
    
    	}
    public static int trovaDomenica(int d,int month,int day_week){
    
    	int dw=day_week;
    	for (int i=d;i<=giorniMese(month);i++){
    		if(dw>7) dw=1;
    		if(dw==Calendar.SUNDAY) {return i;}
    		dw++;
    		}
    	return -1;
    
    	}
    public static int giorniMese(int month){
    	int a=cal.get(Calendar.YEAR);
    	int d=0;
    	switch(month){
    				case 0:case 2 :case 4 :case 6 :case 7 :case  9 :case 11 :d =31; break;
    				case 1: d= (a%4==0) ? 29:28;break;
    				default : d =30;
    
    		}//switch
    
    	return d;
    
    	}
    public static void main(String []args){
    	System.out.println(oraLegale());
    	}
    }
    Nulla è impossibile Mi rimangio ciò che ho detto prima
    Il codice è un pò lungo , però funziona.
    Se riesci ad accorciarlo fai sapere

    Ciauz
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

  4. #4
    Avevo scritto una cazzata
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

  5. #5
    Originariamente inviato da Zero-2
    Avevo scritto una cazzata
    in che senso?
    Blink@go

    "Non tutto quel che è oro brilla, Ne gli erranti sono perduti; Il vecchio ch'è forte non s'aggrinza, Le radici profonde non gelano.Dalle ceneri rinascerà un fuoco, L'ombra sprigionerà una scintilla, Nuova sarà la lama ormai rotta, E re quei ch'è senza corona."

    ------------
    Lang: java 1.4.1 Eclipse

  6. #6
    Nel senso che avevo scritto un secondo post ,che , però , non aveva nessun senso
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

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.