- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章PHP 实现公历日期与农历日期的互转换由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
PHP 实现公历日期与农历日期的互转换 。
前言:
今天根据客户的需求对时间进行了转换,就是客户要求增加农历日期的显示,在网上抄袭了一段,稍微修改了一下运行成功了,不难的,改动的很少的. 。
示例代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
|
<?php
/*
*
* 陈海波 新二级页面 农历转换成公历
*
* */
// lunar.php 新建这个php文件,所有的代码无需改,需要改的是下面teacher.php 的几行
class
Lunar
{
private
$_SMDay
=
array
(1 => 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
//定义公历月分天数
private
$_LStart
= 1950 ;
//农历从1950年开始
private
$_LMDay
=
array
(
//差:该年的农历正月初一到该年公历1月1日的天数;1~12:农历月份天数;闰:如有闰月,记录该月平月天数
// 差 1 2 3 4 5 6 7 8 9 10 11 12 闰
array
(47,29,30,30,29,30,30,29,29,30,29,30,29),
array
(36,30,29,30,30,29,30,29,30,29,30,29,30),
array
(6,29,30,29,30,59,29,30,30,29,30,29,30,29),
//五月29 闰五月30
array
(44,29,30,29,29,30,30,29,30,30,29,30,29),
array
(33,30,29,30,29,29,30,29,30,30,29,30,30),
array
(23,29,30,59,29,29,30,29,30,29,30,30,30,29),
//三月29 闰三月30
array
(42,29,30,29,30,29,29,30,29,30,29,30,30),
array
(30,30,29,30,29,30,29,29,59,30,29,30,29,30),
//八月30 闰八月29
array
(48,30,30,30,29,30,29,29,30,29,30,29,30),
array
(38,29,30,30,29,30,29,30,29,30,29,30,29),
array
(27,30,29,30,29,30,59,30,29,30,29,30,29,30),
//六月30 闰六月29
array
(45,30,29,30,29,30,29,30,30,29,30,29,30),
array
(35,29,30,29,29,30,29,30,30,29,30,30,29),
array
(24,30,29,30,58,30,29,30,29,30,30,30,29,29),
//四月29 闰四月29
array
(43,30,29,30,29,29,30,29,30,29,30,30,30),
array
(32,29,30,29,30,29,29,30,29,29,30,30,29),
array
(20,30,30,59,30,29,29,30,29,29,30,30,29,30),
//三月30 闰三月29
array
(39,30,30,29,30,30,29,29,30,29,30,29,30),
array
(29,29,30,29,30,30,29,59,30,29,30,29,30,30),
//七月30 闰七月29
array
(47,29,30,29,30,29,30,30,29,30,29,30,29),
array
(36,30,29,29,30,29,30,30,29,30,30,29,30),
array
(26,29,30,29,29,59,30,29,30,30,30,29,30,30),
//五月30 闰五月29
array
(45,29,30,29,29,30,29,30,29,30,30,29,30),
array
(33,30,29,30,29,29,30,29,29,30,30,29,30),
array
(22,30,30,29,59,29,30,29,29,30,30,29,30,30),
//四月30 闰四月29
array
(41,30,30,29,30,29,29,30,29,29,30,29,30),
array
(30,30,30,29,30,29,30,29,59,29,30,29,30,30),
//八月30 闰八月29
array
(48,30,29,30,30,29,30,29,30,29,30,29,29),
array
(37,30,29,30,30,29,30,30,29,30,29,30,29),
array
(27,30,29,29,30,29,60,29,30,30,29,30,29,30),
//六月30 闰六月30
array
(46,30,29,29,30,29,30,29,30,30,29,30,30),
array
(35,29,30,29,29,30,29,29,30,30,29,30,30),
array
(24,30,29,30,58,30,29,29,30,29,30,30,30,29),
//四月29 闰四月29
array
(43,30,29,30,29,29,30,29,29,30,29,30,30),
array
(32,30,29,30,30,29,29,30,29,29,59,30,30,30),
//十月30 闰十月29
array
(50,29,30,30,29,30,29,30,29,29,30,29,30),
array
(39,29,30,30,29,30,30,29,30,29,30,29,29),
array
(28,30,29,30,29,30,59,30,30,29,30,29,29,30),
//六月30 闰六月29
array
(47,30,29,30,29,30,29,30,30,29,30,30,29),
array
(36,30,29,29,30,29,30,29,30,29,30,30,30),
array
(26,29,30,29,29,59,29,30,29,30,30,30,30,30),
//五月30 闰五月29
array
(45,29,30,29,29,30,29,29,30,29,30,30,30),
array
(34,29,30,30,29,29,30,29,29,30,29,30,30),
array
(22,29,30,59,30,29,30,29,29,30,29,30,29,30),
//三月30 闰三月29
array
(40,30,30,30,29,30,29,30,29,29,30,29,30),
array
(30,29,30,30,29,30,29,30,59,29,30,29,30,30),
//八月30 闰八月29
array
(49,29,30,29,30,30,29,30,29,30,30,29,29),
array
(37,30,29,30,29,30,29,30,30,29,30,30,29),
array
(27,30,29,29,30,58,30,30,29,30,30,29,30,29),
//五月29 闰五月29
array
(46,30,29,29,30,29,29,30,29,30,30,30,29),
array
(35,30,30,29,29,30,29,29,30,29,30,30,29),
array
(23,30,30,29,59,30,29,29,30,29,30,29,30,30),
//四月30 闰四月29
array
(42,30,30,29,30,29,30,29,29,30,29,30,29),
array
(31,30,30,29,30,30,29,30,29,29,30,29,30),
array
(21,29,59,30,30,29,30,29,30,29,30,29,30,30),
//二月30 闰二月29
array
(39,29,30,29,30,29,30,30,29,30,29,30,29),
array
(28,30,29,30,29,30,29,59,30,30,29,30,30,30),
//七月30 闰七月29
array
(48,29,29,30,29,29,30,29,30,30,30,29,30),
array
(37,30,29,29,30,29,29,30,29,30,30,29,30),
array
(25,30,30,29,29,59,29,30,29,30,29,30,30,30),
//五月30 闰五月29
array
(44,30,29,30,29,30,29,29,30,29,30,29,30),
array
(33,30,29,30,30,29,30,29,29,30,29,30,29),
array
(22,30,29,30,59,30,29,30,29,30,29,30,29,30),
//四月30 闰四月29
array
(40,30,29,30,29,30,30,29,30,29,30,29,30),
array
(30,29,30,29,30,29,30,29,30,59,30,29,30,30),
//九月30 闰九月29
array
(49,29,30,29,29,30,29,30,30,30,29,30,29),
array
(38,30,29,30,29,29,30,29,30,30,29,30,30),
array
(27,29,30,29,30,29,59,29,30,29,30,30,30,29),
//六月29 闰六月30
array
(46,29,30,29,30,29,29,30,29,30,29,30,30),
array
(35,30,29,30,29,30,29,29,30,29,29,30,30),
array
(24,29,30,30,59,30,29,29,30,29,30,29,30,30),
//四月30 闰四月29
array
(42,29,30,30,29,30,29,30,29,30,29,30,29),
array
(31,30,29,30,29,30,30,29,30,29,30,29,30),
array
(21,29,59,29,30,30,29,30,30,29,30,29,30,30),
//二月30 闰二月29
array
(40,29,30,29,29,30,29,30,30,29,30,30,29),
array
(28,30,29,30,29,29,59,30,29,30,30,30,29,30),
//六月30 闰六月29
array
(47,30,29,30,29,29,30,29,29,30,30,30,29),
array
(36,30,30,29,30,29,29,30,29,29,30,30,29),
array
(25,30,30,30,29,59,29,30,29,29,30,30,29,30),
//五月30 闰五月29
array
(43,30,30,29,30,29,30,29,30,29,29,30,30),
array
(33,29,30,29,30,30,29,30,29,30,29,30,29),
array
(22,29,30,59,30,29,30,30,29,30,29,30,29,30),
//三月30 闰三月29
array
(41,30,29,29,30,29,30,30,29,30,30,29,30),
array
(30,29,30,29,29,30,29,30,29,30,30,59,30,30),
//十一月30 闰十一月29
array
(49,29,30,29,29,30,29,30,29,30,30,29,30),
array
(38,30,29,30,29,29,30,29,29,30,30,29,30),
array
(27,30,30,29,30,29,59,29,29,30,29,30,30,29),
//六月29 闰六月30
array
(45,30,30,29,30,29,29,30,29,29,30,29,30),
array
(34,30,30,29,30,29,30,29,30,29,29,30,29),
array
(23,30,30,29,30,59,30,29,30,29,30,29,29,30),
//五月30 闰五月29
array
(42,30,29,30,30,29,30,29,30,30,29,30,29),
array
(31,29,30,29,30,29,30,30,29,30,30,29,30),
array
(21,29,59,29,30,29,30,29,30,30,29,30,30,30),
//二月30 闰二月29
array
(40,29,30,29,29,30,29,29,30,30,29,30,30),
array
(29,30,29,30,29,29,30,58,30,29,30,30,30,29),
//七月29 闰七月29
array
(47,30,29,30,29,29,30,29,29,30,29,30,30),
array
(36,30,29,30,29,30,29,30,29,29,30,29,30),
array
(25,30,29,30,30,59,29,30,29,29,30,29,30,29),
//五月29 闰五月30
array
(44,29,30,30,29,30,30,29,30,29,29,30,29),
array
(32,30,29,30,29,30,30,29,30,30,29,30,29),
array
(22,29,30,59,29,30,29,30,30,29,30,30,29,29),
//三月29 闰三月30
);
//是否闰年
private
function
IsLeapYear(
$AYear
)
{
return
(
$AYear
% 4 == 0) && ((
$AYear
% 100 != 0) || (
$AYear
% 400 == 0));
}
//公历该月的天数(year:年份; month:月份)
private
function
GetSMon(
$year
,
$month
)
{
if
(
$this
->IsLeapYear(
$year
) &&
$month
== 2)
return
29;
else
return
$this
->_SMDay[
$month
];
}
//农历名称转换
private
function
LYearName(
$year
)
{
$Name
=
array
(
"零"
,
"一"
,
"二"
,
"三"
,
"四"
,
"五"
,
"六"
,
"七"
,
"八"
,
"九"
);
for
(
$i
=0;
$i
<4;
$i
++)
for
(
$k
=0;
$k
<10;
$k
++)
if
(
$year
[
$i
]==
$k
)
$tmp
.=
$Name
[
$k
];
return
$tmp
;
}
private
function
LMonName(
$month
)
{
if
(
$month
>=1 &&
$month
<=12 )
{
$Name
=
array
( 1=>
"正"
,
"二"
,
"三"
,
"四"
,
"五"
,
"六"
,
"七"
,
"八"
,
"九"
,
"十"
,
"十一"
,
"十二"
);
return
$Name
[
$month
];
}
return
$month
;
}
private
function
LDayName(
$day
)
{
if
(
$day
>=1 &&
$day
<=30 )
{
$Name
=
array
( 1 =>
"初一"
,
"初二"
,
"初三"
,
"初四"
,
"初五"
,
"初六"
,
"初七"
,
"初八"
,
"初九"
,
"初十"
,
"十一"
,
"十二"
,
"十三"
,
"十四"
,
"十五"
,
"十六"
,
"十七"
,
"十八"
,
"十九"
,
"二十"
,
"廿一"
,
"廿二"
,
"廿三"
,
"廿四"
,
"廿五"
,
"廿六"
,
"廿七"
,
"廿八"
,
"廿九"
,
"三十"
);
return
$Name
[
$day
];
}
return
$day
;
}
//公历转农历(Sdate:公历日期)
public
function
S2L(
$date
)
{
list(
$year
,
$month
,
$day
) =
explode
(
"-"
,
$date
);
if
(
$year
<= 1951 ||
$month
<= 0 ||
$day
<= 0 ||
$year
>= 2051 )
return
false;
//获取查询日期到当年1月1日的天数
$date1
=
strtotime
(
$year
.
"-01-01"
);
//当年1月1日
$date2
=
strtotime
(
$year
.
"-"
.
$month
.
"-"
.
$day
);
$days
=
round
((
$date2
-
$date1
)/3600/24);
$days
+= 1;
//获取相应年度农历数据,化成数组Larray
$Larray
=
$this
->_LMDay[
$year
-
$this
->_LStart];
if
(
$days
<=
$Larray
[0])
{
$Lyear
=
$year
- 1;
$days
=
$Larray
[0] -
$days
;
$Larray
=
$this
->_LMDay[
$Lyear
-
$this
->_LStart];
if
(
$days
<
$Larray
[12])
{
$Lmonth
= 12;
$Lday
=
$Larray
[12] -
$days
;
}
else
{
$Lmonth
= 11;
$days
=
$days
-
$Larray
[12];
$Lday
=
$Larray
[11] -
$days
;
}
}
else
{
$Lyear
=
$year
;
$days
=
$days
-
$Larray
[0];
for
(
$i
= 1;
$i
<= 12;
$i
++)
{
if
(
$days
>
$Larray
[
$i
])
$days
=
$days
-
$Larray
[
$i
];
else
{
if
(
$days
> 30){
$days
=
$days
-
$Larray
[13];
$Ltype
= 1;
}
$Lmonth
=
$i
;
$Lday
=
$days
;
break
;
}
}
}
return
mktime
(0, 0, 0,
$Lmonth
,
$Lday
,
$Lyear
);
//$Ldate = $Lyear."-".$Lmonth."-".$Lday;
//$Ldate = $this->LYearName($Lyear)."年".$this->LMonName($Lmonth)."月".$this->LDayName($Lday);
//if($Ltype) $Ldate.="(闰)";
//return $Ldate;
}
//农历转公历(date:农历日期; type:是否闰月)
public
function
L2S(
$date
,
$type
= 0)
{
list(
$year
,
$month
,
$day
) = split(
"-"
,
$date
);
if
(
$year
<= 1951 ||
$month
<= 0 ||
$day
<= 0 ||
$year
>= 2051 )
return
false;
$Larray
=
$this
->_LMDay[
$year
-
$this
->_LStart];
if
(
$type
== 1 &&
count
(
$Larray
)<=12 )
return
false;
//要求查询闰,但查无闰月
//如果查询的农历是闰月并该年度农历数组存在闰月数据就获取
if
(
$Larray
[
$month
]>30 &&
$type
== 1 &&
count
(
$Larray
) >=13)
$day
=
$Larray
[13] +
$day
;
//获取该年农历日期到公历1月1日的天数
$days
=
$day
;
for
(
$i
=0;
$i
<=
$month
-1;
$i
++)
$days
+=
$Larray
[
$i
];
//当查询农历日期距离公历1月1日超过一年时
if
(
$days
> 366 || (
$this
->GetSMon(
$month
,2)!=29 &&
$days
>365 ))
{
$Syear
=
$year
+1;
if
(
$this
->GetSMon(
$month
,2)!=29)
$days
-=366;
else
$days
-=365;
if
(
$days
>
$this
->_SMDay[1])
{
$Smonth
= 2;
$Sday
=
$days
-
$this
->_SMDay[1];
}
else
{
$Smonth
= 1;
$Sday
=
$days
;
}
}
else
{
$Syear
=
$year
;
for
(
$i
=1;
$i
<=12;
$i
++)
{
if
(
$days
>
$this
->GetSMon(
$Syear
,
$i
))
$days
-=
$this
->GetSMon(
$Syear
,
$i
);
else
{
$Smonth
=
$i
;
$Sday
=
$days
;
break
;
}
}
}
return
mktime
(0, 0, 0,
$Smonth
,
$Sday
,
$Syear
);
//$Sdate = $Syear."-".$Smonth."-".$Sday;
//return $Sdate;
}
}
?>
|
teacher.php 。
1
2
3
4
5
6
7
|
//公历转农历
require_once
(CORE_.
"Lunar.php"
);
// 加载lunar.php文件
$today
=
date
(
"Y-m-d"
);
$lunar
=
new
Lunar();
// 实例化类
$nonglitime
=
array
();
$nl
=
date
(
"Y-n-d"
,
$lunar
->S2L(
$today
));
echo
$nl
;
exit
;
// 转为农历是:2012-05-25
|
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持! 。
原文链接:http://chenhaibo0806999.iteye.com/blog/1591475 。
最后此篇关于PHP 实现公历日期与农历日期的互转换的文章就讲到这里了,如果你想了解更多关于PHP 实现公历日期与农历日期的互转换的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我正在做一项作业,涉及使用 GregorianCalendar。规范说我需要使用 setLenient(false);我该怎么做呢?我还需要设置一个固定日期(2009 年 1 月 1 日),以便我的计
嘿伙计们,我知道这是一个非常简单的问题,但我是 Java 新手,所以请耐心等待。我创建了一个程序,可以计算一本书发行后返回的时间!所以请帮帮我。 这是我的代码: public void loan(
我在夏令时方面遇到了一个奇怪的问题。我有一个 java 程序计划在每天上午 00:05 运行,但昨天它在 23:05 运行。我正在使用公历在java中安排这个程序。在此之前,它从未在 23:05 运行
我在 Java 中使用 GregorianCalendar,我想知道如何使用它来检查日期是否有效(例如:检查 2 月 29 日是否仅在闰年, 检查日期是否不早于当前数据等)。 我已经创建了一个 Gre
我一直在试图弄清楚这个问题。这是关于JavaFX控件在按下回车键时选择月份、数字日和年的名称。我什至尝试使用面向对象来解决这个问题。问题在图片链接中。 Here is the question in
这个问题已经有答案了: Why is January month 0 in Java Calendar? (18 个回答) 已关闭 8 年前。 对于此代码,我必须做的就是使用 GregorianCal
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎偏离主题,因为它缺乏足够的信息来诊断问题。 更详细地描述您的问题或 include a mini
我创建了一个 TreeMap的 存储引入 GPS 闰秒的日期: leapSecondsDict = new TreeMap(); GregorianCalendar calendar = ne
在完成 JUnit 之后,我正在做一些基于文档的测试,在表格中包含以下项目 输入变量 - 预期结果 - 实际结果......通过或失败...... 如果我将日期和时间传递给我的方法 “01AUG07”
这个问题已经有答案了: 已关闭11 年前。 Possible Duplicate: Java Calendar Setting Incorrectly 我有这个代码: GregorianCalenda
我必须为我的 Java 类(class)制作一个功能齐全的日历,但我被卡住了。我正在使用 GregorianCalendar 来获取当前的日、月、年等。我正在使用 JButton 来填充填写日历的 4
我正在使用公历来设置日期值并尝试获取设置的值。代码如下 Constants.sSetDate_calendar = new GregorianCalendar(year,month,day);//
我有一个 9 月 2 日星期二的 GregorianCalendar 实例。 valñue 以毫秒为单位进行检查,没有问题。我想要下一个星期日(7 日)23:59:59 的另一个日历。所以: Greg
我有一个 JSP 页面,里面有一个 java 变量,其名称为 ${entry.date},该变量的类型为 Gregorian Calendar ,它放置在循环并最终生成错误日志表。现在我的问题是,在我
下面的程序是教程的一部分。我在这里有一些困惑包含以下几行: GregorianCalendar gCal = new GregorianCalendar();
我正在编写一个类来简化我可以使用 GregorianCalendar 进行的所有操作。我需要做的操作是:- 获取字符串格式的日期,翻译成意大利语;- 在两个日期之间进行减法。我没有使用过日历、日期和时
我是一个非常业余的编码员,他似乎无法解决从用户输入的整数中获取星期几(例如星期日、星期一等)的问题。我只是想给用户一条消息,其中列出了 (mm/dd/yyyy, dayOfWeek),但我没有改变星期
一些历法改革者寻求使一年中每个月的长度相等。这通常是通过创建一个日历来实现的,该日历有 13 个月,每个月有 4 周(28 天),共 364 天。已知最早的此类建议是格鲁吉亚日历 - more det
相同的代码 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:
我正在尝试将 pandas 数据帧转换为 SPSS 格式,但在转换 datetime64 变量时遇到问题。 使用以下代码: import pandas as pd import datetime as
我是一名优秀的程序员,十分优秀!