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.