Schaltjahre (Unterprogramme)
Schreiben Sie ein Unterprogramm, das von einer gegebenen Jahrzahl ermittelt, ob es sich um ein Schaltjahr handelt. Dabei sind alle durch 4 teilbaren Jahre sog. Schaltjahre mit einem im Februar angefügten Schalttag.
Seit der Einführung des Gregorianischen Kalenders im Jahr 1582 gilt zusätzlich folgende Regel: In allen durch 100 teilbaren Jahren wird kein Schalttag eingefügt, es sei denn, das Jahr ist durch 400 teilbar.
0 Kommentare
9 Lösung(en)
boolean schaltjahr(int jahr) {
boolean schalt = false;
if (0 == jahr % 4) {
schalt = true;
}
if (0 == jahr % 100) {
schalt = false;
}
if (0 == jahr % 400) {
schalt = true;
}
return schalt;
}
def schaltjahr(jahr):
schalt = False
if (jahr%4) == 0:
schalt = True
if (jahr%100) == 0:
schalt = False
if (jahr%400) == 0:
schalt = True
return schalt
print schaltjahr(1998)
print schaltjahr(2000)
print schaltjahr(2100)
print schaltjahr(2101)
def schaltjahr(jahr)
if (0 == jahr % 400) then return true end
if((0 == jahr % 100) && (jahr > 1582)) then return false end
0 == jahr % 4
end
# Tests
print "test 2000 schalt? #{schaltjahr(2000)}\n"
print "test 2100 schalt? #{schaltjahr(2100)}\n"
print "test 1500 schalt? #{schaltjahr(1500)}\n"
print "test 1501 schalt? #{schaltjahr(1501)}\n"
print "test 2001 schalt? #{schaltjahr(2001)}\n"
Lösung von: Philipp G. Freimann (BBW (Berufsbildungsschule Winterthur) https://www.bbw.ch)
import java.util.Scanner;
public class Schaltjahr {
public static void main(String[] args) {
new Schaltjahr().top();
}
void top() {
System.out.println("Jahr eingeben: ");
int j = new Scanner(System.in).nextInt();
if(!schaltjahr(j)) {
System.out.print("kein ");
}
System.out.println("Schaltjahr");
}
boolean schaltjahr(int jahr) {
if (0 == jahr % 400) {
return true;
}
if((0 == jahr % 100) && (jahr > 1582)) {
return false;
}
return 0 == jahr % 4;
}
} // end of class Schaltjahr
Lösung von: Philipp G. Freimann (BBW (Berufsbildungsschule Winterthur) https://www.bbw.ch)
// 1 im Schaltjahr, 0 sonst
int schalttag(int jahr) {
if(jahr % 4 != 0) { return 0; }
if(jahr % 400 == 0) { return 1; }
if(jahr % 100 == 0 && jahr > 1582) { return 0; }
return 1;
}
// true im Schaltjahr, false sonst
boolean schaltjahr(int jahr) {
return 1 == schalttag(jahr);
}
Lösung von: Philipp G. Freimann (BBW (Berufsbildungsschule Winterthur) https://www.bbw.ch)
function isLeapYear(y) {
let a = y < 1582,
b = y % 4 == 0,
c = y % 400 == 0;
return (a && b) || (!a && (b && c));
}
let years = [1500, 1582, 1600, 1700, 1701, 2000, 2010, 2100];
for (i of years) console.log(i, isLeapYear(i));
Lösung von: Lisa Salander (Heidi-Klum-Gymnasium Bottrop)
// C++ 14 | VS-2022
#include <iostream>
bool is_leapYear(int y) {
return (y >= 1582 && y % 4 == 0 && y % 100 != 0 || y % 400 == 0);
}
int main() {
std::cout << (is_leapYear(1988) ? "wahr" : "falsch") << "\n";
}
Lösung von: Jens Kelm (@JKooP)
// NET 6.x | C# 10.x | VS-2022
static bool IsLeapYear(int y) => y >= 1582 && y % 4 == 0 && y % 100 != 0 || y % 400 == 0;
Console.WriteLine($"1988: {IsLeapYear(1988)}");
Lösung von: Jens Kelm (@JKooP)
while True:
jahr = int(input("Geben sie ein Jahr ein:"))
if jahr % 400 == 0 or (jahr % 4 == 0 and jahr % 100 != 0):
print('Schaltjahr')
else:
print('kein Schaltjahr')
Lösung von: Name nicht veröffentlicht
Verifikation/Checksumme:
1500 -> true
1582 -> false
1600 -> true
1700 -> false
1701 -> false
2000 -> true
2010 -> false
2100 -> false
Aktionen
Neue Lösung hinzufügen
Bewertung
Durchschnittliche Bewertung:
Meta
Zeit: | 0.25 |
Schwierigkeit: | k.A. |
Webcode: | 4xw9-mhjm |
Autor: | Philipp G. Freimann (BBW (Berufsbildungsschule Winterthur) https://www.bbw.ch) |