php农历日历

###########################################

#作者: 沈潋(S&S Lab)                      #

#E-mail:shenlian@hotmail.com              #

#web: http://www.focus-2000.com           #

#                                         #

#版权声明:                                #

#作者开放版权                             #

#允许无条件地使用本文件的全部或部分       #

#可作任何修改或增补                       #

#如果您使用了本文件,请给作者写一封E-mail #

#如有问题欢迎同作者联系                   #

#谢谢您的关注!                            #

###########################################

/*

*修改:小许

*mail: san@xfocus.org

*web : http://www.xfocus.org

*

*说实在的,我对古历可以说一窍不通,下面这个数组还是不理解 可是作者的信箱好像不通

*基本上是依样画葫芦,所以出现错误,见笑见笑,呵呵

*/

#农历每月的天数

$everymonth=array(

0=>array(8,0,0,0,0,0,0,0,0,0,0,0,29,30,7,1),

1=>array(0,29,30,29,29,30,29,30,29,30,30,30,29,0,8,2),

2=>array(0,30,29,30,29,29,30,29,30,29,30,30,30,0,9,3),

3=>array(5,29,30,29,30,29,29,30,29,29,30,30,29,30,10,4),

4=>array(0,30,30,29,30,29,29,30,29,29,30,30,29,0,1,5),

5=>array(0,30,30,29,30,30,29,29,30,29,30,29,30,0,2,6),

6=>array(4,29,30,30,29,30,29,30,29,30,29,30,29,30,3,7),

7=>array(0,29,30,29,30,29,30,30,29,30,29,30,29,0,4,8),

8=>array(0,30,29,29,30,30,29,30,29,30,30,29,30,0,5,9),

9=>array(2,29,30,29,29,30,29,30,29,30,30,30,29,30,6,10),

10=>array(0,29,30,29,29,30,29,30,29,30,30,30,29,0,7,11),

11=>array(6,30,29,30,29,29,30,29,29,30,30,29,30,30,8,12),

12=>array(0,30,29,30,29,29,30,29,29,30,30,29,30,0,9,1),

13=>array(0,30,30,29,30,29,29,30,29,29,30,29,30,0,10,2),

14=>array(5,30,30,29,30,29,30,29,30,29,30,29,29,30,1,3),

15=>array(0,30,29,30,30,29,30,29,30,29,30,29,30,0,2,4),

16=>array(0,29,30,29,30,29,30,30,29,30,29,30,29,0,3,5),

17=>array(2,30,29,29,30,29,30,30,29,30,30,29,30,29,4,6),

18=>array(0,30,29,29,30,29,30,29,30,30,29,30,30,0,5,7),

19=>array(7,29,30,29,29,30,29,29,30,30,29,30,30,30,6,8),

20=>array(0,29,30,29,29,30,29,29,30,30,29,30,30,0,7,9),

21=>array(0,30,29,30,29,29,30,29,29,30,29,30,30,0,8,10),

22=>array(5,30,29,30,30,29,29,30,29,29,30,29,30,30,9,11),

23=>array(0,29,30,30,29,30,29,30,29,29,30,29,30,0,10,12),

24=>array(0,29,30,30,29,30,30,29,30,29,30,29,29,0,1,1),

25=>array(4,30,29,30,29,30,30,29,30,30,29,30,29,30,2,2),

26=>array(0,29,29,30,29,30,29,30,30,29,30,30,29,0,3,3),

27=>array(0,30,29,29,30,29,30,29,30,29,30,30,30,0,4,4),

28=>array(2,29,30,29,29,30,29,29,30,29,30,30,30,30,5,5),

29=>array(0,29,30,29,29,30,29,29,30,29,30,30,30,0,6,6),

30=>array(6,29,30,30,29,29,30,29,29,30,29,30,30,29,7,7),

31=>array(0,30,30,29,30,29,30,29,29,30,29,30,29,0,8,8),

32=>array(0,30,30,30,29,30,29,30,29,29,30,29,30,0,9,9),

33=>array(5,29,30,30,29,30,30,29,30,29,30,29,29,30,10,10),

34=>array(0,29,30,29,30,30,29,30,29,30,30,29,30,0,1,11),

35=>array(0,29,29,30,29,30,29,30,30,29,30,30,29,0,2,12),

36=>array(3,30,29,29,30,29,29,30,30,29,30,30,30,29,3,1),

37=>array(0,30,29,29,30,29,29,30,29,30,30,30,29,0,4,2),

38=>array(7,30,30,29,29,30,29,29,30,29,30,30,29,30,5,3),

39=>array(0,30,30,29,29,30,29,29,30,29,30,29,30,0,6,4),

40=>array(0,30,30,29,30,29,30,29,29,30,29,30,29,0,7,5),

41=>array(6,30,30,29,30,30,29,30,29,29,30,29,30,29,8,6),

42=>array(0,30,29,30,30,29,30,29,30,29,30,29,30,0,9,7),

43=>array(0,29,30,29,30,29,30,30,29,30,29,30,29,0,10,8),

44=>array(4,30,29,30,29,30,29,30,29,30,30,29,30,30,1,9),

45=>array(0,29,29,30,29,29,30,29,30,30,30,29,30,0,2,10),

46=>array(0,30,29,29,30,29,29,30,29,30,30,29,30,0,3,11),

47=>array(2,30,30,29,29,30,29,29,30,29,30,29,30,30,4,12),

48=>array(0,30,29,30,29,30,29,29,30,29,30,29,30,0,5,1),

49=>array(7,30,29,30,30,29,30,29,29,30,29,30,29,30,6,2),

50=>array(0,29,30,30,29,30,30,29,29,30,29,30,29,0,7,3),

51=>array(0,30,29,30,30,29,30,29,30,29,30,29,30,0,8,4),

52=>array(5,29,30,29,30,29,30,29,30,30,29,30,29,30,9,5),

53=>array(0,29,30,29,29,30,30,29,30,30,29,30,29,0,10,6),

54=>array(0,30,29,30,29,29,30,29,30,30,29,30,30,0,1,7),

55=>array(3,29,30,29,30,29,29,30,29,30,29,30,30,30,2,8),

56=>array(0,29,30,29,30,29,29,30,29,30,29,30,30,0,3,9),

57=>array(8,30,29,30,29,30,29,29,30,29,30,29,30,29,4,10),

58=>array(0,30,30,30,29,30,29,29,30,29,30,29,30,0,5,11),

59=>array(0,29,30,30,29,30,29,30,29,30,29,30,29,0,6,12),

60=>array(6,30,29,30,29,30,30,29,30,29,30,29,30,29,7,1),

61=>array(0,30,29,30,29,30,29,30,30,29,30,29,30,0,8,2),

62=>array(0,29,30,29,29,30,29,30,30,29,30,30,29,0,9,3),

63=>array(4,30,29,30,29,29,30,29,30,29,30,30,30,29,10,4),

64=>array(0,30,29,30,29,29,30,29,30,29,30,30,30,0,1,5),

65=>array(0,29,30,29,30,29,29,30,29,29,30,30,29,0,2,6),

66=>array(3,30,30,30,29,30,29,29,30,29,29,30,30,29,3,7),

67=>array(0,30,30,29,30,30,29,29,30,29,30,29,30,0,4,8),

68=>array(7,29,30,29,30,30,29,30,29,30,29,30,29,30,5,9),

69=>array(0,29,30,29,30,29,30,30,29,30,29,30,29,0,6,10),

70=>array(0,30,29,29,30,29,30,30,29,30,30,29,30,0,7,11),

71=>array(5,29,30,29,29,30,29,30,29,30,30,30,29,30,8,12),

72=>array(0,29,30,29,29,30,29,30,29,30,30,29,30,0,9,1),

73=>array(0,30,29,30,29,29,30,29,29,30,30,29,30,0,10,2),

74=>array(4,30,30,29,30,29,29,30,29,29,30,30,29,30,1,3),

75=>array(0,30,30,29,30,29,29,30,29,29,30,29,30,0,2,4),

76=>array(8,30,30,29,30,29,30,29,30,29,29,30,29,30,3,5),

77=>array(0,30,29,30,30,29,30,29,30,29,30,29,29,0,4,6),

78=>array(0,30,29,30,30,29,30,30,29,30,29,30,29,0,5,7),

79=>array(6,30,29,29,30,29,30,30,29,30,30,29,30,29,6,8),

80=>array(0,30,29,29,30,29,30,29,30,30,29,30,30,0,7,9),

81=>array(0,29,30,29,29,30,29,29,30,30,29,30,30,0,8,10),

82=>array(4,30,29,30,29,29,30,29,29,30,29,30,30,30,9,11),

83=>array(0,30,29,30,29,29,30,29,29,30,29,30,30,0,10,12),

84=>array(10,30,29,30,30,29,29,30,29,29,30,29,30,30,1,1),

85=>array(0,29,30,30,29,30,29,30,29,29,30,29,30,0,2,2),

86=>array(0,29,30,30,29,30,30,29,30,29,30,29,29,0,3,3),

87=>array(6,30,29,30,29,30,30,29,30,30,29,30,29,29,4,4),

88=>array(0,30,29,30,29,30,29,30,30,29,30,30,29,0,5,5),

89=>array(0,30,29,29,30,29,29,30,30,29,30,30,30,0,6,6),

90=>array(5,29,30,29,29,30,29,29,30,29,30,30,30,30,7,7),

91=>array(0,29,30,29,29,30,29,29,30,29,30,30,30,0,8,8),

92=>array(0,29,30,30,29,29,30,29,29,30,29,30,30,0,9,9),

93=>array(3,29,30,30,29,30,29,30,29,29,30,29,30,29,10,10),

94=>array(0,30,30,30,29,30,29,30,29,29,30,29,30,0,1,11),

95=>array(8,29,30,30,29,30,29,30,30,29,29,30,29,30,2,12),

96=>array(0,29,30,29,30,30,29,30,29,30,30,29,29,0,3,1),

97=>array(0,30,29,30,29,30,29,30,30,29,30,30,29,0,4,2),

98=>array(5,30,29,29,30,29,29,30,30,29,30,30,29,30,5,3),

99=>array(0,30,29,29,30,29,29,30,29,30,30,30,29,0,6,4),

100=>array(0,30,30,29,29,30,29,29,30,29,30,30,29,0,7,5),

101=>array(4,30,30,29,30,29,30,29,29,30,29,30,29,30,8,6),

102=>array(0,30,30,29,30,29,30,29,29,30,29,30,29,0,9,7),

103=>array(0,30,30,29,30,30,29,30,29,29,30,29,30,0,10,8),

104=>array(2,29,30,29,30,30,29,30,29,30,29,30,29,30,1,9),

105=>array(0,29,30,29,30,29,30,30,29,30,29,30,29,0,2,10),

106=>array(7,30,29,30,29,30,29,30,29,30,30,29,30,30,3,11),

107=>array(0,29,29,30,29,29,30,29,30,30,30,29,30,0,4,12),

108=>array(0,30,29,29,30,29,29,30,29,30,30,29,30,0,5,1),

109=>array(5,30,30,29,29,30,29,29,30,29,30,29,30,30,6,2),

110=>array(0,30,29,30,29,30,29,29,30,29,30,29,30,0,7,3),

111=>array(0,30,29,30,30,29,30,29,29,30,29,30,29,0,8,4),

112=>array(4,30,29,30,30,29,30,29,30,29,30,29,30,29,9,5),

113=>array(0,30,29,30,29,30,30,29,30,29,30,29,30,0,10,6),

114=>array(9,29,30,29,30,29,30,29,30,30,29,30,29,30,1,7),

115=>array(0,29,30,29,29,30,29,30,30,30,29,30,29,0,2,8),

116=>array(0,30,29,30,29,29,30,29,30,30,29,30,30,0,3,9),

117=>array(6,29,30,29,30,29,29,30,29,30,29,30,30,30,4,10),

118=>array(0,29,30,29,30,29,29,30,29,30,29,30,30,0,5,11),

119=>array(0,30,29,30,29,30,29,29,30,29,29,30,30,0,6,12),

120=>array(4,29,30,30,30,29,30,29,29,30,29,30,29,30,7,1)

);

##############################

#农历天干

$mten=array("null","甲","乙","丙","丁","戊","己","庚","辛","壬","癸");

#农历地支

$mtwelve=array("null","子(鼠)","丑(牛)","寅(虎)","卯(兔)","辰(龙)",

"巳(蛇)","午(马)","未(羊)","申(猴)","酉(鸡)","戌(狗)","亥(猪)");

#农历月份

$mmonth=array("闰","正","二","三","四","五","六",

"七","八","九","十","十一","十二","月");

#农历日

$mday=array("null","初一","初二","初三","初四","初五","初六","初七","初八","初九","初十",

"十一","十二","十三","十四","十五","十六","十七","十八","十九","二十",

"廿一","廿二","廿三","廿四","廿五","廿六","廿七","廿八","廿九","三十");

##############################

#星期

$weekday = array("星期日","星期一","星期二","星期三","星期四","星期五","星期六");

#阳历总天数 至1900年12月21日

$total=11;

#阴历总天数

$mtotal=0;

##############################

#获得当日日期

$today=getdate();

if($today["year"]<1901 || $today["year"]>2020) die("年份出错!");

$cur_wday=$today["wday"];

for($y=1901;$y

$total+=365;

if ($y%4==0) $total++;

}

switch($today["mon"]) { //再加当年的几个月

case 12:

$total+=30;

case 11:

$total+=31;

case 10:

$total+=30;

case 9:

$total+=31;

case 8:

$total+=31;

case 7:

$total+=30;

case 6:

$total+=31;

case 5:

$total+=30;

case 4:

$total+=31;

case 3:

$total+=28;

case 2:

$total+=31;

}

if($today["year"]%4 == 0 && $today["mon"]>2) $total++; //如果当年是闰年还要加一天

$total=$total+$today["mday"]-1; //加当月的天数

$flag1=0;  //判断跳出循环的条件

$j=0;

while ($j<=120){  //用农历的天数累加来判断是否超过阳历的天数

$i=1;

while ($i<=13){

$mtotal+=$everymonth[$j][$i];

if ($mtotal>=$total){

$flag1=1;

break;

}

$i++;

}

if ($flag1==1) break;

$j++;

}

if($everymonth[$j][0]<>0 and $everymonth[$j][0]

$mm=$i-1;

}

else{

$mm=$i;

}

if($i==$everymonth[$j][0]+1 and $everymonth[$j][0]<>0) {

$nlmon=$mmonth[0].$mmonth[$mm];#闰月

}

else {

$nlmon=$mmonth[$mm].$mmonth[13];

}

#计算所求月份1号的农历日期

$md=$everymonth[$j][$i]-($mtotal-$total);

if($md > $everymonth[$j][$i])

$md-=$everymonth[$j][$i];

$nlday=$mday[$md];

$nowday=date("Y年n月j日 ").$weekday[$cur_wday]."
".$mten[$everymonth[$j][14]].$mtwelve[$everymonth[$j][15]]."年".$nlmon.$nlday;

echo "$nowday";

?>

mysql 获取农历年份_php下实现农历日历的代码相关推荐

  1. MySQL获取当前年份月份日期

    MySQL获取当前年份月份日期 – 获取年份 YEAR(CURDATE()): 2019 – 获取月份 MONTH(CURDATE()): 6 – 当前时间 DATE(CURDATE()): 2019 ...

  2. mysql 获取农历年份_php获取农历(阴历)、节日、节气的类的方法以及用法

    这篇文章主要介绍了php实现获取农历(阴历).节日.节气的类与用法,结合实例形式分析了php日期工具类Lunar的具体定义与获取农历日期.节气等相关操作技巧,需要的朋友可以参考下 具体如下: /* * ...

  3. mysql 获取select结果_php如何操作mysql获取select 结果

    这篇文章主要介绍了php操作mysql获取select 结果的几种方法,需要的朋友可以参考下 如果用了 MYSQL_BOTH,将得到一个同时包含关联和数字索引的数组. 用 MYSQL_ASSOC 只得 ...

  4. mysql 获取操作系统信息_php获取服务器操作系统相关信息的方法

    这篇文章主要介绍了php获取服务器操作系统相关信息的方法,涉及php针对服务器端预定义变量及系统函数的使用技巧,需要的朋友可以参考下 本文实例讲述了php获取服务器操作系统相关信息的方法.分享给大家供 ...

  5. php 阴历年份,农历年份对照表

    农历年份对照表,介绍<农历年份对照表>,价格和牌子,六十甲子与年份对照表,农历纪年对照表,中国农历年号表,中国农历年份表. 第1条:农历年份对照表,农历年份对应属相_百度文库 答:发布时间 ...

  6. mysql获取上月的某一天

    1.mysql获取上月的第26天 select date_sub(date_sub(date_format(now(),'%y-%m-%d'),interval extract( day from n ...

  7. MySQL获取当前时间、年月、年月日

    文章目录 1.mysql获取当前时间(年月日 时分秒) 2.mysql获取当前年月 3.mysql获取当前年月日 4.mysql获取当前年份 5.mysql获取当前月份 6.mysql获取当前日 1. ...

  8. mysql 获取农历年份_iOS 获取公历、农历日期的年月日

    iOS 获取公历.农历日期的年月日 介绍三种方法获取 Date (NSDate) 的年月日. 用 date 表示当前日期.测试日期为公历 2017 年 2 月 5 日,农历丁酉年,鸡年,正月初九. l ...

  9. mysql将公历农历转换_php 公历农历如何实现转换

    php公历农历转换的实现方法:首先创建一个PHP示例文件,并设置该文件的编码为"utf-8":然后引入"lunar.php":接着通过"$lunar- ...

最新文章

  1. 室内设计木地板材质合集包 Arroway – Design Craft Vol.4
  2. 函数功能MATLAB
  3. Python装饰器执行顺序详解
  4. 四十九、深入了解两个并发接口Callable和Runnable的区别
  5. vs.net 中编译链接vc工程时的LNK171@mspdb140.dll错误处理
  6. FileSystemObject和Folders使用详细介绍
  7. vue 条件渲染 v-if | v-show
  8. Win32的虚拟内存分配函数
  9. 将物体固定在坐标某个点_坐标变换(2)—不同坐标系下的变换
  10. 机器人坐标系建立_如何在30分钟内建立一个简单的搜索机器人
  11. 第五篇:你“ 看不见 ” 的隐式转换
  12. React 页面渲染后自动执行onClick事件问题
  13. 帆软 动态改变填报数据库表;数据分析亦可用此方法
  14. R语言ggplot2绘图
  15. [译] PWA 实战:Tinder 的性能优化之道
  16. 使用python实现猴子摘香蕉问题
  17. 快快云安全,网站被劫持怎么办
  18. 空间分析方法在计算机上的应用,空间分析
  19. 聊聊HTTPS环境DNS优化:美图App请求耗时节约近半案例
  20. 学习笔记7--车辆控制平台

热门文章

  1. 单链表-史上最清晰的尾插法和头插法
  2. 计算机网络期末复习考点
  3. Eclipse 免安装(便携版)从官网如何下载
  4. 纪录片中国通史观后感
  5. 静态HTML网页设计作品——棋牌游戏(8页) HTML+CSS+JavaScript web大作业 静态网页
  6. ex计算机绘图基础教程怎么画图,cad2008的新手基础教程
  7. HCIP datacom 821、831题库
  8. 电脑html连接电视无信号,康佳液晶电视与电脑连接后无信号输入怎么解决?
  9. ISO认证需要多长时间,ISO9001认证流程
  10. 华硕fl8000u是什么型号_华硕fl8000u怎么样 华硕笔记本fl8000u配置是什么【详细介绍】...