PHP之干支纪年法
时间:2008-11-18
来源:互联网
[php]<?php
/**
* 干支纪年法
*
* 原理分析
* ------------------------------
* 干和支的含义:干支是天干,地支的合称。
* ----------------------------------------
* 1 2 3 4 5 6 7 8 9 10
* 甲 乙 丙 丁 戊 己 庚 辛 壬 癸
* ----------------------------------------
* 支指地支,共有12个符号:
* -----------------------------------------------
* 1 2 3 4 5 6 7 8 9 10 11 12
* 子 丑 寅 卯 辰 巳 午 未 申 酉 戌 亥
* -------------------------------------------------------------
* 干和支组合后用于纪年,即:将十天干和十二地支按顺序搭配组合成干支,用于纪年。
* 按此排法,当天干10个符号排了六轮与地支12个符号排了五轮以后,可构成60干支。
* 续排下去又将恢复原状,周而复始,即如民间所说“六十年转甲子”。
*
* @author PHP城管
* @email [email protected]
* @copyright 2008-10-06
*/
class cls_heavenly_stems{
//10 天干
protected $heavenly = array(1=>'甲','乙','丙','丁','戊','己','庚','辛','壬','癸');
//12 地支
protected $stems = array(1=>'子','丑','寅','卯','辰','巳','午','未','申','酉','戌','亥');
protected $list = array (
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 => '癸亥',);
//六十年甲子(干支表)
public function sixty(){
$list = array();
for ($i = 1;$i <= 60 ;$i++){
$string = '';
$string = $this->heavenly[$i%10 == 0 ? 10 : $i%10];
$string .= $this->stems[$i%12 == 0 ? 12 : $i%12];
$list[$i] = $string;
}
return $list;
}
//公元前+公元后
public function year($year,$BC = false){
$ac = $year % 60;
if($BC){
$key = $ac < 57 ? $ac + 3 : $ac - 57;
}else{
$key = $ac < 3 ? $ac + 57 : $ac - 3;
}
return $this->list[$key];
}
}
$cls_heavenly_stems = new cls_heavenly_stems();
//$temp = $cls_heavenly_stems->sixty();
echo $cls_heavenly_stems->year(2008);
?>[/php]
source:http://www.5dou.net/app/2.txt
/**
* 干支纪年法
*
* 原理分析
* ------------------------------
* 干和支的含义:干支是天干,地支的合称。
* ----------------------------------------
* 1 2 3 4 5 6 7 8 9 10
* 甲 乙 丙 丁 戊 己 庚 辛 壬 癸
* ----------------------------------------
* 支指地支,共有12个符号:
* -----------------------------------------------
* 1 2 3 4 5 6 7 8 9 10 11 12
* 子 丑 寅 卯 辰 巳 午 未 申 酉 戌 亥
* -------------------------------------------------------------
* 干和支组合后用于纪年,即:将十天干和十二地支按顺序搭配组合成干支,用于纪年。
* 按此排法,当天干10个符号排了六轮与地支12个符号排了五轮以后,可构成60干支。
* 续排下去又将恢复原状,周而复始,即如民间所说“六十年转甲子”。
*
* @author PHP城管
* @email [email protected]
* @copyright 2008-10-06
*/
class cls_heavenly_stems{
//10 天干
protected $heavenly = array(1=>'甲','乙','丙','丁','戊','己','庚','辛','壬','癸');
//12 地支
protected $stems = array(1=>'子','丑','寅','卯','辰','巳','午','未','申','酉','戌','亥');
protected $list = array (
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 => '癸亥',);
//六十年甲子(干支表)
public function sixty(){
$list = array();
for ($i = 1;$i <= 60 ;$i++){
$string = '';
$string = $this->heavenly[$i%10 == 0 ? 10 : $i%10];
$string .= $this->stems[$i%12 == 0 ? 12 : $i%12];
$list[$i] = $string;
}
return $list;
}
//公元前+公元后
public function year($year,$BC = false){
$ac = $year % 60;
if($BC){
$key = $ac < 57 ? $ac + 3 : $ac - 57;
}else{
$key = $ac < 3 ? $ac + 57 : $ac - 3;
}
return $this->list[$key];
}
}
$cls_heavenly_stems = new cls_heavenly_stems();
//$temp = $cls_heavenly_stems->sixty();
echo $cls_heavenly_stems->year(2008);
?>[/php]
source:http://www.5dou.net/app/2.txt
作者: skey 发布时间: 2008-11-18
有兴趣的可以继续深入计算把生辰八字算出来
作者: skey 发布时间: 2008-11-18
这个算法还不是很好。。还可以退出更好的算法
作者: iminto 发布时间: 2008-11-18
呵呵,看来有同样爱好的人啦!
下面是我做的干支算法和生辰八字算法:
http://www.chenchen8.com/blog/archives/278
各位拍砖啊!!!!!
下面是我做的干支算法和生辰八字算法:
http://www.chenchen8.com/blog/archives/278
各位拍砖啊!!!!!
作者: 0hudu 发布时间: 2008-11-18
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28