Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Probleme mit Java

Empfohlene Antworten

Veröffentlicht

Moin loide

ich arbeite grad an nem Programm das die zeit berchenet. Man gibt einfach ein wann man angefangen hat und wann man aufgehört hat (z.B. mit der arbeit). Hat soweit wunderbar geklappt und ich wollte nun die Eingabe über die cmd machen. Allerdings gibt der mir nen Fehler aus und ich weiß nich wie ich den beseitigen kann. könnt ihr mir da helfen? hier is das Programm


import java.io.*;


public class Zeitberechnen {


  public static void main(final String[] args) {

    int stundenanfang;

    int stundenende;

    int minutenanfang;

    int minutenende;

    int zeit;

    int stunden;

    BufferedReader ein=new BufferedReader(new InputStreamReader(System.in));

    try{

      System.out.print("Beginn (Stunde): ");

      stundenanfang=ein.readLine();

      System.out.print("Beginn (Minuten): ");

      minutenanfang=ein.readLine();

      System.out.print("Ende (Stunde): ");

      stundenende=ein.readLine();

      System.out.print("Ende (Minuten): ");

      minutenende=ein.readLine();

    }

    catch(IOException e){

      System.err.println (e.toString());

      System.exit (0);

    }

    if ((stundenende>23)||(stundenanfang>23)||(minutenanfang)>59||(minutenende>59)){

      System.out.println("Ungueltige Eingabe. Bitte richtigen Wert eingeben");

    }

    else{

      if (stundenende-stundenanfang==1){

        zeit=60-minutenanfang+minutenende;

        System.out.println(zeit+" minuten");

      }

      else{

        if (stundenanfang==stundenende){

          zeit=minutenende-minutenanfang;

          System.out.println(zeit+" minuten");

        }

        else{

          if ((stundenende-stundenanfang>1)&&(minutenanfang>minutenende)){

            stunden=stundenende-stundenanfang-1;

            zeit=60-minutenanfang+minutenende;

            System.out.println(stunden+":"+zeit+" h");

          }

          else{

            if ((stundenende-stundenanfang>1)&&   (minutenanfang<minutenende)){

              stunden=stundenende-stundenanfang;

              zeit=minutenende-minutenanfang;

              if(zeit<10){

                System.out.println(stunden+":0"+zeit+" h");

              }

              else{

                System.out.println(stunden+":"+zeit+" h");

              }

            }

            else{

              if(stundenende<stundenanfang){

                zeit=60-minutenanfang+minutenende;

                if((stundenanfang<=12)&&(stundenende<=12)){

                  stunden=12-stundenanfang+stundenende-1;

                  if(zeit==60){

                    stunden=stunden+1;

                    zeit=0;

                  }

                  System.out.println(stunden+":"+zeit+" h");

                }

                else{

                  if((stundenanfang>12)&&(stundenanfang<24)){

                    stunden=24-stundenanfang+stundenende-1;

                    if(zeit==60){

                      stunden=stunden+1;

                      zeit=0;

                    }

                    System.out.println(stunden+":"+zeit+" h");

                  }

                }

              }

            }

          }

        }

      }

    }

  }

}

und hier die fehlermeldung ^^

found : java.lang.String

required : int

stundenanfang=ein.readLine();

ich hab keine ahnung warum da ein String ankommt. ich dachte ich hätte alles auf int geändert.

danke schonma in voraus ^^

Der Tod im Wasserglas dankt

[Jaraz: Bitte

 tags benutzen]

Hi,

ein.readLine(); gibt einen String zurück, daraus musst du einen int machen.

ersetze:

ein.readLine();

durch:

Integer.parseInt(ein.readLine().trim());

Außerdem musst du die Variablen beim anlegen initialisieren:

int stundenanfang = 0;

Gruß Jaraz

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.