Java :: Aufgabe #2

21 Lösungen Lösungen öffentlich

Jahr auf Schaltjahr überprüfen

Anfänger - Java von Gustl - 06.08.2012 um 23:26 Uhr
Schreiben Sie eine Methode, welche überprüft ob das übergebene Jahr (int) ein schaltjahr ist oder nicht.
Rückgabewert ist ein boolean-Wert (true oder false)

Testen Sie die Methode!

Methodenrumpf:
Quellcode ausblenden Java-Code
public static boolean isSchaltjahr(int year) {

}

Lösungen:

1x
vote_ok
von ne0n (330 Punkte) - 10.08.2012 um 17:33 Uhr
Quellcode ausblenden Java-Code
public boolean istSchaltjahr(int jahr)
{
if(jahr%4 == 0 && (jahr%100 != 0 || jahr%400 == 0)
{
return true;
}
return false; 
}
vote_ok
von progdoc (2220 Punkte) - 12.08.2012 um 02:02 Uhr
Quellcode ausblenden Java-Code
public class Schaltjahr {
   public static boolean isSchaltjahr ( int year ) {
      if ( year % 400 == 0 ) 
	 return true ;
      if ( ( year % 4 == 0 ) && ( ! ( year % 100 == 0 ))) 
	 return true ;
      return false ;
    }
   public static void main( String[] args ) {
      if ( args.length != 1 ) {
	 System.out.println( "Error! Call java Schaltjahr <Jahreszahl>!" ) ;
	 System.exit( 1 ) ;
      }
      else {
	 int year = Integer.parseInt( args[ 0 ] ) ;
	 if ( year < 1 ) {
	    System.out.println( "Jahr muss >= 1 sein!" ) ;
	    System.exit( 2 ) ;
	 }
	 else {
	    System.out.print( "Das Jahr " + year + " war " ) ;
	    System.out.print( isSchaltjahr( year ) ?"ein" : "kein" ) ;
	    System.out.println( " Schaltjahr!" ) ;
	 }
      }
   }

}
vote_ok
von shishigami (40 Punkte) - 31.08.2012 um 14:11 Uhr
Quellcode ausblenden Java-Code
 
   public static boolean isSchaltjahr(int year) {
      if (year % 4 == 0)
         return true;
      return false;
   }
1 Kommentar
1x
vote_ok
von red18 (260 Punkte) - 02.09.2012 um 12:53 Uhr
Quellcode ausblenden Java-Code
public static boolean isSchaltjahr(int year) {
   return new GregorianCalendar().isLeapYear(jahr);
}
vote_ok
von phobos (80 Punkte) - 11.09.2012 um 17:51 Uhr
Quellcode ausblenden Java-Code
	public static  Boolean isLeapYear(int i) {
		if ( (i%400)==0   ||     (   (i%4==0)   &&   ((i%100) != 0)   )    ) {
			return true;
		} else {
			return false;
		}		
		
	}
vote_ok
von bossik (160 Punkte) - 13.09.2012 um 21:14 Uhr

Zitat:

Ein Schaltjahr ist, wenn
Die Jahreszahl durch 4 teilbar ist.
Ausnahme 1: Ist die Jahreszahl durch 100 teilbar ist i.d.R. KEIN Schaltjahr.
Ausnahme 2: Ist die Jahreszahl durch 400 teilbar ist IMMER ein Schaltjahr.


Quellcode ausblenden Java-Code
public static boolean isSchaltjahr(int year) {

		if((year%4 == 0) && ((year%100 != 0) || (year%400 == 0))){
			return true;
			
		}else return false;
	}
1x
vote_ok
von Jurom (1070 Punkte) - 19.10.2012 um 11:42 Uhr
Quellcode ausblenden Java-Code
//©2012 by Julius J. Hoffmann
//written with Eclipse

import java.util.*;  //Importiert Scanner zum Einlesen der Eingabe

public class Schaltjahr {		//Die "ausführende Klasse"
	
	public static boolean isSchaltjahr(int year)				//Die Methode zur Überprüfung, vom typ boolean
	{
		if (year%4 == 0 && (year%100 != 0 || year%400 == 0))	//Kontrollabfrage mit booleschen Operatoren (s.u.)
				return true;									//Rückgabe WAHR, wenn die Regeln zutreffen, -> Methode endet HIER
		return false;											//Rückgabe FALSCH, else entfällt, da die Methode bei return autom. endet
	}		//Ende isSchaltjahr-Methode
	
//-------OPTIONAL:-----------------------------------------------------	

	public static void main(String[] args)								//main-Methode
	{
		System.out.print("Bitte Jahr eingeben");						//Ausgabe des Strings
		Scanner s = new Scanner(System.in);								//legt das Scanner-Objekt an
		int y = s.nextInt();											//liest die manuelle Eingabe ein und speichert sie in der Variablen y
		if (isSchaltjahr(y)) System.out.print(y+" ist ein Schaltjahr");	//Abfrage, kein Vgl. nötig, da dieser auch nur dazu dient  
																		//if einen true/false Wert zu übergeben, Ausgabe, wenn Schaltjahr
		else System.out.print(y+" ist kein Schaltjahr");				//Ausgabe, wenn kein Schaltjahr
		//Hier ist else nötig, da die Methode nach der Ausgabe weiterläuft und sonst beides anzeigen würde
	}	//Ende main-Methode
}	//Ende Klasse

/**
Die verwendeten booleschen Operatoren:
- && -> Und, verbindet mehrere Bedingungen
- || -> Oder, es reicht wenn EINE der beiden Bedingungen zutrifft (im Gegensatz zu XOR!)

Weitere Operatoren:
a&b -> gibt den Rest zurück, so lässt sich mit einer 0-Abfrage kontrollieren ob a ein Teiler von b ist
*/
vote_ok
von unavailable (340 Punkte) - 29.04.2014 um 16:46 Uhr
Quellcode ausblenden Java-Code
	public static boolean istSchaltjahr(int jahr) {
		return (jahr%4 == 0 && (jahr%100!= 0 || jahr%400 == 0));
	}


Ganz einfach :3
vote_ok
von ElPapito (2690 Punkte) - 07.05.2015 um 20:15 Uhr
Quellcode ausblenden Java-Code

/**
 * @author ElPapito
 * @date 07.05.2015
 */

import java.util.Scanner;

public class JahrAufSchaltjahrPruefen {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		System.out.print("Bitte ein Jahr eingeben: ");
		int year = scanner.nextInt();
		scanner.close();

		if (isSchaltjahr(year)) {
			System.out.println("Schaltjahr!");
		} else {
			System.out.println("Kein Schaltjahr!");
		}
	}

	public static boolean isSchaltjahr(int year) {
		if (year % 400 == 0) {
			return true;
		} else if (year % 100 == 0) {
			return false;
		} else if (year % 4 == 0) {
			return true;
		} else {
			return false;
		}
	}

}

vote_ok
von mty (690 Punkte) - 05.06.2015 um 13:41 Uhr
Quellcode ausblenden Java-Code
public static boolean isSchaltjahr(int year) {
        return (year % 4 == 0) && ((year % 400 == 0) || (year % 100 != 0));
}
vote_ok
von xy-no (250 Punkte) - 03.11.2015 um 17:02 Uhr
Quellcode ausblenden Java-Code
package java_helloworld;

import java.util.Scanner;

public class IsLeapYear {
	/**
	 * Rules for the leap year: 
	 * 1. x % 4 == 0 
	 * 2. x % 100 != 0 
	 * 3. x % 400 == 0
	 */
	private static boolean leapYear = false;
	private static int year;

	public static boolean isSchaltjahr(int year) {
		if (year % 4 == 0)
			leapYear = true;
		if (year % 100 == 0)
			leapYear = false;
		if (year % 400 == 0)
			leapYear = true;
			
		return leapYear;
	}

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		boolean error = true;

		System.out.println("Schaltjahr");
		System.out.println("Bitte gib das Jahr ein: ");

		while (error) {
			if (sc.hasNextInt())
				year = sc.nextInt();
			else {
				System.out.println("Das ist keine Jahreszahl!");
				System.out.println("Versuch es noch ein Mal: ");
				sc.next();
				continue;
			}
			error = false;
		}
		
		isSchaltjahr(year);
		
		if (leapYear)
			System.out.println("Das Jahr " + year + " ist ein Schaltjahr!");
		else
			System.out.println("Das Jahr " + year + " ist kein Schaltjahr!");
		
		sc.close();
	}
}
vote_ok
von HaraldK (260 Punkte) - 21.02.2016 um 21:09 Uhr
Quellcode ausblenden Java-Code
/* @Author H.K.
 * @Date 21.02.2016
 * 
 * Programmbeschreibung:
 * Eingegebenes Jahr auf Schaltjahr überprüfen
 */

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class mainprogram {

	public static void main ( String args[] ) throws IOException
	{
		int jahr = 0;
		while (jahr == 0)
		{
		System.out.print ( "Prüfe auf Schaltjahr, bitte das Jahr eingeben: " );
	    BufferedReader input = new BufferedReader ( new InputStreamReader ( System.in ) );
	    String inputString = input.readLine();
	    if (inputString.matches("-?\\d+?")) {
	    jahr = Integer.parseInt(inputString);
            boolean schaltjahr = isSchaltjahr(jahr);
	    System.out.println(schaltjahr);
		}
	    else {
	    	System.out.println("Eingabe ist kein Jahr!");
	    }
		}	
	}
	
	public static boolean isSchaltjahr(int year) {
		boolean isSchaltjahr = false;
		isSchaltjahr = year%4 == 0 && (year%100 != 0 || year%400 == 0);
	    return isSchaltjahr;
	}
}


Ausgabe wenn das Jahr ein Schaltjahr ist:

Konsolenausgabe:


Prüfe auf Schaltjahr, bitte das Jahr eingeben: 2004
true


Ausgabe wenn das Jahr kein Schaltjahr ist:

Konsolenausgabe:


Prüfe auf Schaltjahr, bitte das Jahr eingeben: 2005
false


Ausgabe bei falscher Eingabe:

Konsolenausgabe:


Prüfe auf Schaltjahr, bitte das Jahr eingeben: 200t
Eingabe ist kein Jahr!
Prüfe auf Schaltjahr, bitte das Jahr eingeben:
vote_ok
von BigBBuddha (60 Punkte) - 07.04.2016 um 14:45 Uhr
Quellcode ausblenden Java-Code
/*
 * Max F. 07.04.2016
 *
 * Jedes 4. Jahr ist ein Schaltjahr
 * Jedes 100. Jahr ist aber kein Schaltjahr
 * Jedes 400. Jahr ist ein Schaltjahr
 */

public class Schaltjahr {

	public static void main(String[] args) {
		int aktuellesJahr;
		aktuellesJahr=2016;
		if (isSchaltjahr(aktuellesJahr)) //Prüfe mit Methode ob es ein Schaltjahr ist
			System.out.println("Das Jahr "+aktuellesJahr+" ist ein Schaltjahr");
		else
		System.out.println("Das Jahr "+aktuellesJahr+" ist kein Schaltjahr");
	}

	public static boolean isSchaltjahr(int year) {
		if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0))//Math. Bestimmung eines Schaltjahres
			return true;
		else
			return false;
	}
}
vote_ok
von Zitzus (80 Punkte) - 09.05.2017 um 22:56 Uhr
Quellcode ausblenden Java-Code
public static boolean isSchaltjahr(int year)
{
    if(year <= 0)
    {
        return false;
    }

    if(year % 400 == 0)
    {
        return true;
    }

    if(year % 100 == 0)
    {
        return false;
    }

    if(year % 4 == 0)
    {
        return true;
    }

    return false;
}
vote_ok
von Exception (7090 Punkte) - 17.02.2019 um 15:58 Uhr
Quellcode ausblenden Java-Code
package de.exception.schaltjahr_2;

public class MyCalendar {
	
	public static boolean isLeapyear(int year) {
		/**
		 * Eine Lösung wäre mit der in der LocalDate Klasse verfügbaren isLeapYear(year) Methode auch möglich.
		 */
		return ((year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0)));
	}
}

Quellcode ausblenden Java-Code
package de.exception.schaltjahr_2;

import static org.junit.jupiter.api.Assertions.*;

import org.junit.jupiter.api.Test;

class testLeapYear {

	@Test
	void test() {	
		assertEquals(true, MyCalendar.isLeapyear(2008));
		assertEquals(true, MyCalendar.isLeapyear(2012));
		assertEquals(true, MyCalendar.isLeapyear(2016));
		assertEquals(true, MyCalendar.isLeapyear(2020));
		assertEquals(false, MyCalendar.isLeapyear(2021));
		assertEquals(false, MyCalendar.isLeapyear(2022));	
		assertEquals(false, MyCalendar.isLeapyear(2023));	
		assertEquals(true, MyCalendar.isLeapyear(2024));	
	}

}
vote_ok
von ramin719 (20 Punkte) - 29.03.2019 um 22:58 Uhr
Quellcode ausblenden Java-Code
public static boolean isSchaltjahr(int year) {
if (year%4==0){
return true;
}
}
vote_ok
von nOrdan (1160 Punkte) - 29.05.2019 um 18:35 Uhr
Anmerkung: Ich arbeite mit dem Programm BlueJ

Quellcode ausblenden Java-Code


import javax.swing.JOptionPane;

/**
 * Prüfen ob ein Jahr ein Schaltjahr ist.
 * 
 * @author (nOrdan) 
 * @version (29.05.2019 18:12)
 */

public class Schaltjahr
{
    /**
     * Konstruktor für Objekte der Klasse Schaltjahr
     */
    public Schaltjahr()
    {

    }

    public void schaltjahrPruefen()
    {
        boolean valid = false; //Hilfsvariable für die While-Schleife
        while (valid == false) //While-Schleife ,so dass der User nach falscher Eingabe erneut aufgefordert wird ein Jahr einzugeben
        {
            String input = JOptionPane.showInputDialog("Geben sie ihr Jahr ein, welches sie prüfen wollen"); //Eingabe des Users
            try //Hiermit sollen keine Zahleneingaben abgefangen werden siehe beim ersten else 
            {
                if (input == null) 
                {
                    System.exit(0); //Drückt der User auf abbrechen wird null zurück gegeben und das Programm wird beendet
                }
                else if (input.length() == 0)
                {
                    continue; //Gibt der User nichts ein und drückt auf Ok wird die While-Schleife weiter fortgeführt bis der User etwas eingibt und auf Ok drückt
                }
                else
                {
                    int jahr = Integer.parseInt(input); //Umwandlung des Inputs in einen int   
                    valid = true; //Beenden der While-Schleife indem man die Hilfsvariable auf true setzt
                    if (istSchaltjahr(jahr) == true) //Ergebnisrückgabe ob das eingegebene Jahr ein Schaltjahr ist oder nicht
                    {
                        JOptionPane.showMessageDialog(null,"Das Jahr " + jahr + " ist ein Schaltjahr");                
                    }
                    else
                    {
                        JOptionPane.showMessageDialog(null,"Das Jahr " + jahr + " ist kein Schaltjahr");
                    }
                }
            }
            catch (Exception e) //Greift wenn keine Zahl vom User eingegeben wurde, danach erneute Abfrage des Users wegen der While-Schleife
            {
                JOptionPane.showMessageDialog(null,"Invalid Input", "Error", JOptionPane.ERROR_MESSAGE); 
            }   
        }
    }

    private boolean istSchaltjahr(int jahr)
    {
        if ((jahr % 4 == 0) && ((jahr % 100 != 0) || (jahr % 400 == 0))) //Prüfen ob Schaltjahr nach den Schaltjahrregeln
        {
            return true;
        }
        else
        {
            return false;
        }
    }
}



vote_ok
von Flocke (180 Punkte) - 02.11.2019 um 20:31 Uhr
Quellcode ausblenden Java-Code
import java.util.Scanner;

public class Main {
	
	public static void main(String argsp[]) {
		
		String userInput;
		Scanner s = new Scanner(System.in);
		System.out.println("Bitte das zu überprüfende Jahr eingeben:");
		
		do {
			userInput = String.valueOf(s.next());
			if(tryParseInt(userInput)) {
				int userNumber = Integer.parseInt(userInput);				
				isSchaltjahr(userNumber);
			}
			else {
				System.out.println("Dies ist keine gültige Eingabe, bitte ein Jahr eingeben:");
			}
		} while(!tryParseInt(userInput));
	}
	
	static boolean isSchaltjahr(int year) {
		if(year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)) {
			System.out.println("Das Jahr " + year + " ist ein Schaltjahr");
			return true;
		}
		else {
			System.out.println("Das Jahr " + year + " ist kein Schaltjahr");
			return false;
		}
	}
	
	static boolean tryParseInt(String userInput) {  
	     try {
	    	 Integer.parseInt(userInput);  
	         return true;  
	     } catch (NumberFormatException e) {	    	 
	         return false;
	     }
	}
}

Fehlermeldung:

Dies ist keine gültige Eingabe, bitte ein Jahr eingeben:

vote_ok
von kollar (340 Punkte) - 04.12.2019 um 10:50 Uhr
Quellcode ausblenden Java-Code
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Schaltjahr {
	public static void main(String[] args) {

		SchaltjahrPruefen schp = new SchaltjahrPruefen("Schaltjahr prüfen");

	}
}

class SchaltjahrPruefen extends JFrame implements ActionListener {
	JLabel lbl = new JLabel("Geben Sie das Jahr ein: ");
	JTextField tfEingabe = new JTextField(10);
	JTextField tfAusgabe = new JTextField(20);
	JPanel pEingabe = new JPanel();
	JPanel pAusgabe = new JPanel();

	SchaltjahrPruefen(String titel) {
		super(titel);
		setVisible(true);
		setSize(300, 300);
		setLocationRelativeTo(null);
		setLayout(new FlowLayout());

		tfEingabe.addActionListener(this);
		tfAusgabe.setEditable(false);

		pEingabe.add(lbl);
		pEingabe.add(tfEingabe);
		pAusgabe.add(tfAusgabe);

		add(pEingabe);
		add(pAusgabe);

	}

	public static boolean isSchaltjahr(int jahr) {
		if ((jahr % 4 == 0 && !(jahr % 100 == 0)) || (jahr % 400 == 0))
			return true;
		else
			return false;
	}

	@Override
	public void actionPerformed(ActionEvent evt) {

		try {
			int zahl = Integer.parseInt(tfEingabe.getText());
			isSchaltjahr(zahl);
			if (isSchaltjahr(zahl)) {
				tfAusgabe.setText(tfEingabe.getText() + " ist Schaltjahr");
			} else {
				tfAusgabe.setText(tfEingabe.getText() + " ist kein Schaltjahr");
			}
		} catch (NumberFormatException e) {
			tfAusgabe.setText("Bitte Ganzzahl eingeben!");
		}
	}

}
vote_ok
von 0 (0 Punkte) - 01.01.2021 um 21:58 Uhr
Quellcode ausblenden Java-Code
import java.util.Scanner;

public class JahrAufSchaltjahrUeberpruefen {

	public static void main(String[] args) {
		
		System.out.println(isSchaltjahr(new Scanner(System.in).nextInt()));
		
	}
	
	public static boolean isSchaltjahr(int year) {
		
		if (year%4 == 0) {
			
			if (year%100 == 0 && year%400 != 0) {
				return false;
			}
			
			return true;
			
		}
		
		return false;
		
	}

}
vote_ok
von TheChuggler (120 Punkte) - 17.06.2021 um 17:55 Uhr
Quellcode ausblenden Java-Code
/**
 * Test, whether a given year (int) is a leap year.
 * Use a method that returns a boolean.
 */

import java.util.Scanner;

class LeapYear {
    static boolean isLeapYear(int year) {
            if (year % 400 == 0) {
                return true;
            } else if ((year % 4 == 0) && !(year % 100 == 0)) {
                return true;     
            } else {
                return false;
            }
            // shorter possibility: return ((year % 400 == 0) || ((year % 4 == 0) && !(year % 100 == 0)));
        }
        
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int year = 0;
        boolean inputType = false;
        while (!inputType) {
            System.out.println("Please enter a year (integer):");
            try { 
                year = scan.nextInt();
                inputType = true;
            } catch (Exception e) {
                System.out.println("Error: Input is not an integer!");
                scan.next();
            }
        }
        scan.close();
        
        if (isLeapYear(year)) {
            System.out.println(year + " is a leap year.");
        } else {
            System.out.println(year + " is not a leap year.");
        }
    }
}


Konsolenausgabe:

Please enter a year (integer):
sdfg
Error: Input is not an integer!
Please enter a year (integer):
456.
Error: Input is not an integer!
Please enter a year (integer):
1788
1788 is a leap year.
1989084

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.