如何使用PHP 让用户输入一个年份,判断该年份是不是闰年。闰年的判断条件:

如何使用PHP 让用户输入一个年份,判断该年份是不是闰年。闰年的判断条件:,第1张

1判断闰年

①、普通年能被4整除而不能被100整除的为闰年。(如2004年就是闰年,1900年不是闰年) 

②、世纪年能被400整除而不能被3200整除的为闰年。(如2000年是闰年,3200年不是闰年)

2代码:

<html>

<head>

<meta charset="UTF-8" />

<title>闰年判断</title>

</head>

<php

$year = $_GET["year"];

if (isset($_GET["year"])) {

if (is_numeric($year)) {

if ($year % 100 == 0) { //判断世纪年

if ($year % 400 == 0 && $year % 3200 != 0) {

echo "世纪年" $year "是闰年!"; //世纪年里的闰年

} else {

echo "世纪年" $year "不是闰年!";

}

} else { //剩下的就是普通年了

if ($year % 4 == 0 && $year % 100 != 0) {

echo "普通年" $year "是闰年!"; //普通年里的闰年

} else {

echo "普通年" $year "不是闰年!";

}

}

} else

$msg = "请输入正确的格式";

}

>

<body>

<form name=rn method='get'>

<b>请输入年:</b>

<input type="text" name=year>

<input type="submit" name=sub value="查询">

<php

echo $msg;

>

</form>

</body>

</html>

是这样的:我要判断一段时间内是否有闰年的2月,现在我只知道开始日期和结束日期(两个变量),我怎么判断这两个日期之间是否有闰年的二月呢?我需要的答案是:

select case when 时间段内有闰年2月 then 366 else 365 end from dual,我就是不知道那个时间段内是否有闰年2月怎么判断!

求SQL高手!最好不要写function!

如何计算是否闰年其实就是闰年的算法,也就是闰年的来历。先看完下面的资料,估计就大体明白了。 关于公历闰年是这样规定的:地球绕太阳公转一周叫做一回归年,一回归年长365日5时48分46秒。因此,公历规定有平年和闰年,平年一年有365日,比回归年短02422日,四年共短09688 日,故每四年增加一日,这一年有366日,就是闰年。但四年增加一日比四个回归年又多00312日,400年后将多312日,故在400年中少设3个闰年,也就是在400年中只设97个闰年,这样公历年的平均长度与回归年就相近似了。由此规定:年份是整百数的必须是400的倍数才是闰年,例如1900年、2100年就不是闰年。 我们居住的地球总是绕着太阳旋转的。地球绕太阳转一圈需要365天5时48分46秒,也就是3652422天。为了方便,一年定为365天,叫做平年;这样每过四年差不多就要多出一天来,把这一天加在2月里,这一年就有366天,叫做闰年。 通常,每四年里有三个平年一个闰年。公历年份是4的倍数的,一般都是闰年。 按照每四年一个闰年计算,平均每年就要多算出00078天,这样经过四百年就会多算出大约3天来,因此,每四百年中要减少三个闰年。所以规定,公历年份是整百数的,必须是400的倍数的才是闰年,不是400的倍数的就是平年。 我们居住的地球总是绕着太阳旋转的。地球绕太阳转一圈需要365天5时48分46秒,也就是3652422天。为了方便,一年定为365天,叫做平年;这样每过四年差不多就要多出一天来,把这一天加在2月里,这一年就有366天,叫做闰年。 通常,每四年里有三个平年一个闰年。公历年份是4的倍数的,一般都是闰年。 按照每四年一个闰年计算,平均每年就要多算出00078天,这样经过四百年就会多算出大约3天来,因此,每四百年中要减少三个闰年。所以规定,公历年份是整百数的,必须是400的倍数的才是闰年,不是400的倍数的就是平年。 也就是我们通常所说的: 四年一闰,百年不闰,四百年再闰。

以下为未来约100年农历闰年闰月查询问表

你的代码我没细看 就看了最后的public final static boolean isLeapYear(int year)方法,首先肯定的是 你方法的声明错了,final生命的方法或变量以后是改变不了的,单从你判断闰年的语句来看是没有错误的。

经常final 和 static 连起来用是用来生命不可改变的属性的,比如数据库的 *** 作

public class DB

{

public static final String driver="";

public static final String url="";

public static final String user="scott";

public static final String password="tiger";

}

TO_DATE格式(以时间:2007-11-02 13:45:25为例)

Year:

yy two digits 两位年 显示值:07

yyy three digits 三位年 显示值:007

yyyy four digits 四位年 显示值:2007

Month:

mm number 两位月 显示值:11

mon abbreviated 字符集表示 显示值:11月,若是英文版,显示nov

month spelled out 字符集表示 显示值:11月,若是英文版,显示november

Day:

dd number 当月第几天 显示值:02

ddd number 当年第几天 显示值:02

dy abbreviated 当周第几天简写 显示值:星期五,若是英文版,显示fri

day spelled out 当周第几天全写 显示值:星期五,若是英文版,显示friday

ddspth spelled out, ordinal twelfth

Hour:

hh two digits 12小时进制 显示值:01

hh24 two digits 24小时进制 显示值:13

Minute:

mi two digits 60进制 显示值:45

Second:

ss two digits 60进制 显示值:25

其它

Q digit 季度 显示值:4

WW digit 当年第几周 显示值:44

W digit 当月第几周 显示值:1

24小时格式下时间范围为: 0:00:00 - 23:59:59

12小时格式下时间范围为: 1:00:00 - 12:59:59

1 日期和字符转换函数用法(to_date,to_char)

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual; //日期转化为字符串

select to_char(sysdate,'yyyy') as nowYear from dual; //获取时间的年

select to_char(sysdate,'mm') as nowMonth from dual; //获取时间的月

select to_char(sysdate,'dd') as nowDay from dual; //获取时间的日

select to_char(sysdate,'hh24') as nowHour from dual; //获取时间的时

select to_char(sysdate,'mi') as nowMinute from dual; //获取时间的分

select to_char(sysdate,'ss') as nowSecond from dual; //获取时间的秒

select to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss') from dual//

2

select to_char( to_date(222,'J'),'Jsp') from dual

显示Two Hundred Twenty-Two

3求某天是星期几

select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day') from dual;

星期一

select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from dual;

monday

设置日期语言

ALTER SESSION SET NLS_DATE_LANGUAGE='AMERICAN';

也可以这样

TO_DATE ('2002-08-26', 'YYYY-mm-dd', 'NLS_DATE_LANGUAGE = American')

4 两个日期间的天数

select floor(sysdate - to_date('20020405','yyyymmdd')) from dual;

5 时间为null的用法

select id, active_date from table1

UNION

select 1, TO_DATE(null) from dual;

注意要用TO_DATE(null)

6月份差

a_date between to_date('20011201','yyyymmdd') and to_date('20011231','yyyymmdd')

那么12月31号中午12点之后和12月1号的12点之前是不包含在这个范围之内的。

所以,当时间需要精确的时候,觉得to_char还是必要的

7 日期格式冲突问题

输入的格式要看你安装的ORACLE字符集的类型, 比如: US7ASCII, date格式的类型就是: '01-Jan-01'

alter system set NLS_DATE_LANGUAGE = American

alter session set NLS_DATE_LANGUAGE = American

或者在to_date中写

select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from dual;

注意我这只是举了NLS_DATE_LANGUAGE,当然还有很多,

可查看

select from nls_session_parameters

select from V$NLS_PARAMETERS

8

select count()

from ( select rownum-1 rnum

from all_objects

where rownum <= to_date('2002-02-28','yyyy-mm-dd') - to_date('2002-

02-01','yyyy-mm-dd')+1

)

where to_char( to_date('2002-02-01','yyyy-mm-dd')+rnum-1, 'D' )

not in ( '1', '7' )

查找2002-02-28至2002-02-01间除星期一和七的天数

在前后分别调用DBMS_UTILITYGET_TIME, 让后将结果相减(得到的是1/100秒, 而不是毫秒)

9 查找月份

select months_between(to_date('01-31-1999','MM-DD-YYYY'),to_date('12-31-1998','MM-DD-YYYY')) "MONTHS" FROM DUAL;

1

select months_between(to_date('02-01-1999','MM-DD-YYYY'),to_date('12-31-1998','MM-DD-YYYY')) "MONTHS" FROM DUAL;

103225806451613

10 Next_day的用法

Next_day(date, day)

Monday-Sunday, for format code DAY

Mon-Sun, for format code DY

1-7, for format code D

11

select to_char(sysdate,'hh:mi:ss') TIME from all_objects

注意:第一条记录的TIME 与最后一行是一样的

可以建立一个函数来处理这个问题

create or replace function sys_date return date is

begin

return sysdate;

end;

select to_char(sys_date,'hh:mi:ss') from all_objects;

12获得小时数

extract()找出日期或间隔值的字段值

SELECT EXTRACT(HOUR FROM TIMESTAMP '2001-02-16 2:38:40') from offer

SQL> select sysdate ,to_char(sysdate,'hh') from dual;

SYSDATE TO_CHAR(SYSDATE,'HH')

-------------------- ---------------------

2003-10-13 19:35:21 07

SQL> select sysdate ,to_char(sysdate,'hh24') from dual;

SYSDATE TO_CHAR(SYSDATE,'HH24')

-------------------- -----------------------

2003-10-13 19:35:21 19

13年月日的处理

select older_date,

newer_date,

years,

months,

abs(

trunc(

newer_date-

add_months( older_date,years12+months )

)

) days

from ( select

trunc(months_between( newer_date, older_date )/12) YEARS,

mod(trunc(months_between( newer_date, older_date )),12 ) MONTHS,

newer_date,

older_date

from (

select hiredate older_date, add_months(hiredate,rownum)+rownum newer_date

from emp

)

)

14处理月份天数不定的办法

select to_char(add_months(last_day(sysdate) +1, -2), 'yyyymmdd'),last_day(sysdate) from dual

16找出今年的天数

select add_months(trunc(sysdate,'year'), 12) - trunc(sysdate,'year') from dual

闰年的处理方法

to_char( last_day( to_date('02' | | :year,'mmyyyy') ), 'dd' )

如果是28就不是闰年

闰年时间查询从2010年到2020年一共有多少个闰年?

》2010年2020年年份信息:

(1)2010年:

中文名 二零一零年 外文名 Two Thousand And Ten 公 历 2010年 世 纪21世纪 年 代 10年代 春 节2月14日 天 数平年,共365天

(2)2011年:

中文名 二零一一年 外文名 Two Thousand And Eleven 公 历 2011年 时 代 2010年代 春 节2月3日 天 数平年,共365天

(3)2012年:

中文名 二零一二年 外文名 Two Thousand And Twelve 公 历 2012年 年 代 2010年代 春 节1月23日 天 数闰年,共366天 中 历黄帝纪年第4709年

(4)2013年:

中文名 二零一三年 外文名 Two Thousand And Thirteen 公 历 2013年 世 纪21世纪 年 代 10年代 春 节2月10日 天 数平年,共365天

(5)2014年:

中文名 二零一四年 外文名 Two Thousand And Fourteen 公 历 2014年 世 纪21世纪 年 代 10年代 春 节1月31日 天 数平年,共365天

(6)2015年:

中文名 二零一五年 外文名 Twenty Fifteen 公 历 2015年 世 纪21世纪 年 代 10年代 春 节2月19日(恰逢雨水节气) 天 数平年,共365天

(7)2016年:

中文名 二〇一六年 外文名 Twenty Sixteen 公 历 2016年 世 纪21世纪 年 代 10年代 春 节2月8日 天 数闰年,共366天

(8)2017年:

中文名 二〇一七年 外文名 Twenty Seventeen 公 历 2017年 世 纪21世纪 年 代 10年代 春 节1月28日 天 数平年,共365天

(9)2018年:

中文名 二〇一八年 外文名 Twenty Eighteen 公历 2018年 世纪 21世纪 年代 10年代 春 节2月16日 天 数平年,共365天

(10)2019年:

中文名 二〇一九年 外文名 Twenty Nineteen 公 历 2019年 世 纪21世纪 年 代 10年代 春 节2月5日(除夕恰逢立春节气) 天 数平年,共365天

(11)2020年:

中文名 二零二零 外文名 2020 公 历 2020年 世 纪21世纪 年 代 20年代 春 节1月25日 天 数闰年,共366天

》根据年份查询:

2010年2020年中是公历闰年的有:2012年、2016年、2020年(3个)

2010年2020年中是农历闰年的有:2012年、2014年、2017年、2020年(4个)

闰年的含义解释

《1》闰年是公历中的名词,闰年分为普通闰年和世纪闰年。

普通闰年:公历年份是4的倍数的,且不是100的倍数,为闰年。(如2004年就是闰年);

世纪闰年:公历年份是整百数的,必须是400的倍数才是世纪闰年(如1900年不是世纪闰年,2000年是世纪闰年);

《2》闰年是为了弥补因人为历法规定造成的年度天数与地球实际公转周期的时间差而设立的:

补上时间差的年份为闰年。闰年共有366天(1-12月分别为31天,29天,31天,30天,31天,30天,31天,31天,30天,31天,30天,31天)。

凡阳历中有闰日(二月为二十九日)的年;闰余(岁余置闰。阴历每年与回归年相比所差的时日);

注意闰年(公历中名词)和闰月(农历中名词)并没有直接的关联,公历中只分闰年和平年,平年有365天,而闰年有366天(2月中多一天);

平年中也可能有闰月(如2017年是平年,农历有闰月,闰6月)。

1950-2050年间的闰年:

1952、1956、1960、1964、1968、1972、1976、1980、1984、1988、1992、1996、2000、2004、2008、2012、2016、2020、2024、2028、2032、2036、2040、2044、2048。

分析过程如下:

1952年是一个一般年份,1952÷4=488,1952能被4整除,所以1952年是闰年。

1956年是一个一般年份,1956÷4=489,1956能被4整除,所以1956年是闰年。

1960年是一个一般年份,1960÷4=490,1960能被4整除,所以1960年是闰年。

1964年是一个一般年份,1964÷4=491,1964能被4整除,所以1964年是闰年。

1968年是一个一般年份,1968÷4=492,1968能被4整除,所以1968年是闰年。

扩展资料:

闰年的判定方法:

①、普通年能被4整除且不能被100整除的为闰年。(如2004年就是闰年,1900年不是闰年)

②、世纪年能被400整除的是闰年。(如2000年是闰年,1900年不是闰年)

③、对于数值很大的年份,这年如果能整除3200,并且能整除172800则是闰年。如172800年是闰年,86400年不是闰年(因为虽然能整除3200,但不能整除172800)

1判断闰年:

①、普通年能被4整除而不能被100整除的为闰年。(如2004年就是闰年,1900年不是闰年) 

②、世纪年能被400整除而不能被3200整除的为闰年。(如2000年是闰年,3200年不是闰年)

2代码:

<html>  

<head>

<meta charset="UTF-8" />  

<title>闰年判断</title>  

</head>  

<php

$year = $_GET["year"];

if (isset($_GET["year"])) {

    if (is_numeric($year)) {

        if ($year % 100 == 0) { //判断世纪年

            if ($year % 400 == 0 && $year % 3200 != 0) {

                echo "世纪年"  $year  "是闰年!"; //世纪年里的闰年

            } else {

                echo "世纪年"  $year  "不是闰年!";

            }

        } else { //剩下的就是普通年了

            if ($year % 4 == 0 && $year % 100 != 0) {

                echo "普通年"  $year  "是闰年!"; //普通年里的闰年

            } else {

                echo "普通年"  $year  "不是闰年!";

            }

        }

    } else

        $msg = "请输入正确的格式";

}

>  

<body>  

<form name=rn method='get'>  

<b>请输入年:</b>  

<input type="text" name=year>  

<input type="submit" name=sub value="查询">  

<php

echo $msg;

>  

</form>    

</body>  

</html>

以上就是关于如何使用PHP 让用户输入一个年份,判断该年份是不是闰年。闰年的判断条件:全部的内容,包括:如何使用PHP 让用户输入一个年份,判断该年份是不是闰年。闰年的判断条件:、如何判断两个日期之间是否有闰年的2月,SQL怎么写、百年农历闰年表等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9507310.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存