PHP :: Aufgabe #31

2 Lösungen Lösungen öffentlich

Schaltjahresberechnung

Anfänger - PHP von Process1 - 10.01.2013 um 06:52 Uhr
Es soll eine jahreszahl übergeben werden und es soll überprüft werden ob es sich um ein Schaltjahr handelt oder nicht.

Es gilt:
- Wenn ein Jahr durch 4 teilbar ist, ist es ein Schaltjahr, aber
- wenn es durch 100 teilbar ist, ist es kein schaltjahr, außer
- es ist durch 400 teilbar, dann ist es ein schaltjahr

z.b. 1664, 1600, 2000, 2004 sind schaltjahre
1003, 2006, 1700 sind keine schaltjahre

Lösungen:

vote_ok
von bibir (1870 Punkte) - 03.09.2014 um 13:19 Uhr
Quellcode ausblenden PHP-Code
<?php
$schaltjahr = '';
if(isset($_POST['jahr']) && filter_var($_POST['jahr'], FILTER_VALIDATE_INT)){
	$schaltjahr = ist_schaltjahr($_POST['jahr']);
} else {
	$schaltjahr = '';
}

function print_ergebnis($schaltjahr){
	if($schaltjahr === true){
		return $_POST['jahr'].' ist ein Schaltjahr';
	} elseif($schaltjahr === false){
		return $_POST['jahr'].' ist kein Schaltjahr';
	} else {
		return 'Es ist ein Fehler aufgetreten';		
	}
}

function ist_schaltjahr($jahr){
	if(($jahr % 400) == 0){
		return true;
	} elseif(($jahr % 100) == 0){
		return false;
	} elseif(($jahr % 4) == 0){
		return true;
	} else {
		return false;
	}
	// variante b
	/*
	if(($jahr % 4) == 0){ // koennte schaltjahr sein
		if(($jahr % 100) == 0){ // moeglicherweise doch keines
			if(($jahr % 400) == 0){ // ist doch eines
				return true;
			} else {
				return false;
			}
		} else {
			return true;
		}
	} else { // ist definitiv kein schaltjahr
		return false;
	}*/
}
?>
<!DOCTYPE html>
<html>
	<head>
		<title>Schaltjahre</title>
	</head>
	<body>
		<form action="./schaltjahre.php" name="prim" method="POST">
			Welches Jahr soll geprüft werden?<br />
			<input type="text" name="jahr" size="4" />
			<input type="submit" value="berechnen" />
		</form>
		<p>
			<?php
				echo print_ergebnis($schaltjahr);
			?>
		</p>
		
	</body>
</html>
vote_ok
von paddlboot (3970 Punkte) - 08.08.2019 um 10:51 Uhr
Quellcode ausblenden PHP-Code
<?php

//beliebige Eingabe
$jahr = 1664;
$schaltjahr = false;

if($jahr % 400 == 0)
{
	$schaltjahr = true;
}
else if($jahr % 100 == 0)
{
	$schaltjahr = false;
}
else if($jahr % 4 == 0)
{
	$schaltjahr = true;
}


if($schaltjahr == true)
{
	echo $jahr.' ist ein Schaltjahr.';
}
else 
{
	echo $jahr.' ist kein Schaltjahr.';
}

?>
2120898

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.