Question "?"

di il
17 risposte

17 Risposte - Pagina 2

  • Re: Question "?"

    Realizzare un programma java che converte una data espressa dai sei valori: anno, mese, giorno, ore, minuti e secondi, converte tale data nel numero di millisecondi che la distanziano dalla data 1970-01-01 ore 00:00:00. Il programma deve avere un main che chiede i sei valori all'utente e poi li passa ad un metodo che, ricevendo i sei parametri, li converte in un long che corrisponde ai millisecondi e ritorna tale valore come risultato del metodo. Alla fine il main visualizza il numero in millisecondi trovato.
    Verificare il corretto funzionamento del programma usando il sito https://www.epochconverter.com/


    Manca "solo" almeno si spera, la gestione degli errori  



    public class Es {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            long anniConvertiti;


            System.out.println("Inserisci l'anno, mese, giorno, ore, minuti, e secondi ");
            System.out.print("Anno: ");
            long anno = sc.nextLong();
            System.out.print("Mese: ");
            long mese = sc.nextLong();
            System.out.print("Giorno: ");
            long giorno = sc.nextLong();
            System.out.print("Ore: ");
            long ore = sc.nextLong();
            System.out.print("Minuti: ");
            long minuti = sc.nextLong();
            System.out.print("Secondi: ");
            long secondi = sc.nextLong();

            anniConvertiti = converisoneAnniMillisecondi(anno, mese, giorno, ore , minuti, secondi);
            long mesiCovertiti = giorniMesi(mese , anno);

            System.out.println(anniConvertiti + " " + mesiCovertiti + " " + giorno );
        }


        public static long converisoneAnniMillisecondi (long anno , long mese , long giorno , long ore , long minuti , long secondi ){
            long giorni = 0;
            long risultato = 0;

           while (anno > 1970) {
               if (annoBisestile(anno)){
                   giorni = giorni + 366;
               }else {
                   giorni = giorni + 365;
               }
               anno --;
           }
           while (anno < 1970){
               if (annoBisestile(anno)){
                   giorni = giorni - 366;
               }else {
                   giorni = giorni - 365;
               }
               anno ++;
           }
           risultato = giorni * 86400000;

            giorno = giorno * 86400000;





           return risultato;
        }



        public static boolean annoBisestile (long anno ) {
        if (anno % 400 == 0 || (anno % 4 == 0 && (anno % 100 != 0)) ) {
            return true;
        } else {
            return false;
        }

        }


       public static long giorniMesi (long mese, long anno){
            if (mese == 4 || mese == 6 || mese == 9 || mese == 11) {
                return 30 * 86400000L ;
           }else if (mese == 2 ) {
                if (annoBisestile(anno)) {
                    return 29 * 86400000L;
                } else {
                    return 28 * 86400000L;
                }
           } else {
                return 31 * 86400000L;
           }

       }

    }

  • Re: Question "?"

    Questo è un altro argomento @Panda e va in un altro thread.

    Possibile che tu non riesca a rispettare il Regolamento del forum?

    Possibile che nessun moderatore intervenga? Io non segnalo più.

  • Re: Question "?"

    Per Panda96: devi proporre un argomento per thread altrimenti si crea un calderone di post.

    Chiudo questo thread

Devi accedere o registrarti per scrivere nel forum
17 risposte