Php 寻找闰年
我正在使用一个php代码,首先我使用for stationPhp 寻找闰年,php,for-loop,Php,For Loop,我正在使用一个php代码,首先我使用for station for($i=0; $i<4; $i++) 对于($i=0;$i为什么不这样 <?php for($i=0; $i<16; $i++) { $day = date("d", mktime(0, 0, 0, 2, 29, date("Y")+$i)); if($day == 29) { $year = date("Y")+$i;
for($i=0; $i<4; $i++)
对于($i=0;$i为什么不这样
<?php
for($i=0; $i<16; $i++)
{
$day = date("d", mktime(0, 0, 0, 2, 29, date("Y")+$i));
if($day == 29)
{
$year = date("Y")+$i;
echo "<p>The next leap year is 29th February $year</p><br>";
}
}
?>
为什么不这样
<?php
for($i=0; $i<16; $i++)
{
$day = date("d", mktime(0, 0, 0, 2, 29, date("Y")+$i));
if($day == 29)
{
$year = date("Y")+$i;
echo "<p>The next leap year is 29th February $year</p><br>";
}
}
?>
使用,只需检查年份。使用一条语句即可
function is_leap_year($year)
{
return ((($year % 4) == 0) && ((($year % 100) != 0) || (($year % 400) == 0)));
}
使用,只需检查年份。使用一个单独的声明
function is_leap_year($year)
{
return ((($year % 4) == 0) && ((($year % 100) != 0) || (($year % 400) == 0)));
}
您可以使用以下命令检查闰年:
输出
2013 is not a leap year
2014 is not a leap year
2015 is not a leap year
2016 is a leap year
2017 is not a leap year
2018 is not a leap year
2019 is not a leap year
2020 is a leap year
您可以使用以下命令检查闰年:
输出
2013 is not a leap year
2014 is not a leap year
2015 is not a leap year
2016 is a leap year
2017 is not a leap year
2018 is not a leap year
2019 is not a leap year
2020 is a leap year
使用这些类可以使这类事情快速而简单:-
$datetime = new \DateTime("2013/01/01");
$interval = new \DateInterval('P1Y');
$period = new \DatePeriod($datetime, $interval, 20);
foreach($period as $date){
if((bool)$date->format('L')){
echo $date->format('Y') . " is a Leap Year</br>\n";
}
}
您可以利用此功能来促进重复使用:-
/**
* @param int $numberOfYears
* @return array
*/
function getLeapYears($numberOfYears = 10){
$result = array();
$datetime = new \DateTime();
$interval = new \DateInterval("P1Y");
$period = new \DatePeriod($datetime, $interval, $numberOfYears);
foreach($period as $date){
if((bool)$date->format('L')){
$result[] = $date->format('Y');
}
}
return $result;
}
或测试给定年份是否为闰年:-
function isLeapYear($year)
{
return (bool)\DateTime::createFromFormat('Y', $year)->format('L');
}
使用这些类可以使这类事情快速而简单:-
$datetime = new \DateTime("2013/01/01");
$interval = new \DateInterval('P1Y');
$period = new \DatePeriod($datetime, $interval, 20);
foreach($period as $date){
if((bool)$date->format('L')){
echo $date->format('Y') . " is a Leap Year</br>\n";
}
}
您可以利用此功能来促进重复使用:-
/**
* @param int $numberOfYears
* @return array
*/
function getLeapYears($numberOfYears = 10){
$result = array();
$datetime = new \DateTime();
$interval = new \DateInterval("P1Y");
$period = new \DatePeriod($datetime, $interval, $numberOfYears);
foreach($period as $date){
if((bool)$date->format('L')){
$result[] = $date->format('Y');
}
}
return $result;
}
或测试给定年份是否为闰年:-
function isLeapYear($year)
{
return (bool)\DateTime::createFromFormat('Y', $year)->format('L');
}
这里的问题到底是什么?我试图实现的是添加多个for语句,而不是使用多个php代码。您能详细说明一下吗?@Phas1c使用带有for($i=0;$i<16;$i++)的单个for语句
这是OP提出错误问题或回答错误问题的所有答案的一个主要示例:)这里的问题到底是什么?我试图实现的是添加多个for语句而不是使用多个php代码。您能详细说明一下吗?@Phas1c使用带有for的单个for语句吗($i=0;$i<16;$i++)
这是OP提出错误问题或所有答案都回答错误问题的一个典型例子:)虽然这是一个好答案,但有太多不必要的大括号。这里有一个改进的版本(没有这些额外的大括号):return$year%4==0&($year%100!=0 | |$year%400==0)代码>虽然这是一个很好的答案,但是有太多不必要的大括号。这里有一个改进的版本(没有这些额外的大括号):return$year%4==0&($year%100!=0 | |$year%400==0)代码>