当前位置:首页 » 编程语言 » php农历

php农历

发布时间: 2023-01-15 12:08:43

php 自动计算12生肖

<?php
//2002/10/23-->出生年月
/*
计算12个星座
计算12个生肖
计算年龄
*/
class timeage
{
public $y = 0;
public $m = 0;
public $d = 0;
public $age = 0;
public $time = 0;

public function __construct($time)
{
$this->time = $time;
$this->y = date('Y',$this->time);
$this->m = date('m',$this->time);
$this->d = date('d',$this->time);
}
public function getage()
{
$this->age = time() - $this->time;
$this->age = $this->age/60/60/24/365;
return (int)$this->age;
}
public function getconstellation()
{
switch ($this->m)
{
case 1:
if ($this->d < 19)
{
$this->constellation = '摩羯座';
return $this->constellation;
}
else
{
$this->constellation = '水瓶座';
return $this->constellation;
}
break;
case 2:
if ($this->d < 18)
{
$this->constellation = '水瓶座';
return $this->constellation;
}
else
{
$this->constellation = '双鱼座';
return $this->constellation;
}
break;
case 3:
if ($this->d < 20)
{
$this->constellation = '双鱼座';
return $this->constellation;
}
else
{
$this->constellation = '白羊座';
return $this->constellation;
}
break;
case 4:
if ($this->d < 19)
{
$this->constellation = '白羊座';
return $this->constellation;
}
else
{
$this->constellation = '金牛座';
return $this->constellation;
}
break;
case 5:
if ($this->d < 20)
{
$this->constellation = '金牛座';
return $this->constellation;
}
else
{
$this->constellation = '双子座';
return $this->constellation;
}
break;
case 6:
if ($this->d < 21)
{
$this->constellation = '双子座';
return $this->constellation;
}
else
{
$this->constellation = '巨蟹座';
return $this->constellation;
}
break;
case 7:
if ($this->d < 22)
{
$this->constellation = '巨蟹座';
return $this->constellation;
}
else
{
$this->constellation = '狮子座';
return $this->constellation;
}
break;
case 8:
if ($this->d < 22)
{
$this->constellation = '狮子座';
return $this->constellation;
}
else
{
$this->constellation = '处女座';
return $this->constellation;
}
break;
case 9:
if ($this->d < 22)
{
$this->constellation = '处女座';
return $this->constellation;
}
else
{
$this->constellation = '天秤座';
return $this->constellation;
}
break;
case 10:
if ($this->d < 23)
{
$this->constellation = '天秤座';
return $this->constellation;
}
else
{
$this->constellation = '天蝎座';
return $this->constellation;
}
break;
case 11:
if ($this->d < 22)
{
$this->constellation = '天蝎座';
return $this->constellation;
}
else
{
$this->constellation = '射手座';
return $this->constellation;
}
break;
case 12:
if ($this->d < 20)
{
$this->constellation = '射手座';
return $this->constellation;
}
else
{
$this->constellation = '摩羯座';
return $this->constellation;
}
break;
}
}
public function getzodiac()
{
$this->animals = array('鼠', '牛', '虎', '兔', '龙', '蛇','马', '羊', '猴', '鸡', '狗', '猪');
$this->zodiac = ($this->y - 1900) % 12;
return $this->animals[$this->zodiac];
}
}

$age = strtotime('1993-07-25');
echo $age;
$a = new timeage($age);
echo '<br>';
echo $a->y;
echo '<br>';
echo $a->m;
echo '<br>';
echo $a->d;
echo '<br>';
echo $a->time;
echo '<br>';
echo $a->age;
echo '<br>';
echo $a->getage();
echo '<br>';
echo $a->getconstellation();
echo '<br>';
echo $a->getzodiac();

//没事干替你写了个全部的功能函数 写代码类 记得给好评

❷ 怎么获取日历的农历日期

我的农历算法可以有点麻烦,我计算了节气,节日,等一些东西.所以方法有很多个,如果你需要的话,我可以给你源码.我是修改的源码,系统自带日历.增加的农历.

❸ php怎么把日期转成星座

你可以这样, 在数据表中插入的是农历的日期。
然后通过抽取数据表的列值 进行 date(m)函数判断 ,如果这个是在某某月份范围内则显示某某星座 。

❹ 系统自带的日历怎么显示农历

方法/步骤
在iPhone主界面找到“设置”

进入“设置”

找到“邮件、通讯录、日历”,点击进入。

点击“添加账户”,这里会看到很多邮箱种类,选择最下面的“其他”。

在“日历”下面选择“添加已订阅的日历”。

在“服务器”一栏中输入“
iweek.me/m/ical/nong.php?starty=2012&county=3
”,其中2012是起始年份,这个根据你的需要输入。county指定的为年数,所以这里给出的农历为2012年、2013年和2014年的。

输入完毕后点击右上角的“下一步”。会提示你“正在验证”。

验证服务器过程中会弹出一个对话框,选择“继续”即可。

稍等片刻,验证完毕会出现一些描述信息,点击右上角的“存储

这个时候就可以返回“设置”中的“邮件、通讯录、日历”查看刚才添加的日历账户。这个时候该iPhone的日历中也会显示农历了。

❺ php显示日期,周几,农历初几,什么节日函数

一般是用js来显示:

今天是<script language="javascript">RunGLNL();</script>

2014年12月28日 星期日 农历冬月初七

<script>functionRunGLNL(){vare=newDate,t=newArray("星期日","星期一","星期二","星期三","星期四","星期五","星期六"),i=e.getFullYear()+"年"+[e.getMonth()+1]+"月"+e.getDate()+"日";intHours=e.getHours(),intMinutes=e.getMinutes(),intSeconds=e.getSeconds(),0==intHours?(hours="12:",xfile=""):12>intHours?(hours=intHours+":",xfile=""):12==intHours?(hours="12:",xfile=""):(intHours-=12,hours=intHours+":",xfile=""),minutes=10>intMinutes?"0"+intMinutes+":":intMinutes+":",seconds=10>intSeconds?"0"+intSeconds+"":intSeconds+"",i=i+""+t[e.getDay()];vari=i+""+CnDateofDateStr(e);i+=SolarTerm(e),document.write(i)}functionDaysNumberofDate(e){returnparseInt((Date.parse(e)-Date.parse(e.getFullYear()+"/1/1"))/864e5)+1}functionCnDateofDate(e){vart,i,a,n,r,o,s,l,d=newArray(22,42,218,0,131,73,182,5,14,100,187,0,25,178,91,0,135,106,87,4,18,117,43,0,29,182,149,0,138,173,85,2,21,85,170,0,130,85,108,7,13,201,118,0,23,100,183,0,134,228,174,5,17,234,86,0,27,109,42,0,136,90,170,4,20,173,85,0,129,170,213,9,11,82,234,0,22,169,109,0,132,169,93,6,15,212,174,0,26,234,77,0,135,186,85,4),c=newArray,h=newArray,u=newArray,p=e.getFullYear();if(e.getMonth()+1,e.getDate(),100>p&&(p+=1900),1997>p||p>2020)return0;for(u[0]=d[4*(p-1997)],u[1]=d[4*(p-1997)+1],u[2]=d[4*(p-1997)+2],u[3]=d[4*(p-1997)+3],c[0]=0!=(128&u[0])?12:11,t=127&u[0],n=u[1],n<<=8,n|=u[2],i=u[3],a=15;a>=0;a--)h[15-a]=29,0!=(1<<a&n)&&h[15-a]++,c[15-a]==i?c[15-a+1]=-i:(c[15-a+1]=c[15-a]<0?-c[15-a]+1:c[15-a]+1,c[15-a+1]>12&&(c[15-a+1]=1));if(r=DaysNumberofDate(e)-1,r<=h[0]-t)s=p>1901&&CnDateofDate(newDate(p-1+"/12/31"))<0?-c[0]:c[0],l=t+r;else{for(o=h[0]-t,a=1;r>o&&o+h[a]<r;)o+=h[a],a++;s=c[a],l=r-o}returns>0?100*s+l:100*s-l}functionCnYearofDate(e){vart=e.getFullYear(),i=e.getMonth()+1,a=parseInt(Math.abs(CnDateofDate(e))/100);return100>t&&(t+=1900),a>i&&t--,t-=1864,CnEra(t)+"年"}functionCnMonthofDate(e){vart,i=newArray("零","正","二","三","四","五","六","七","八","九","十","冬","腊");returnt=parseInt(CnDateofDate(e)/100),0>t?"闰"+i[-t]+"月":i[t]+"月"}functionCnDayofDate(e){vart,i=newArray("零","初一","初二","初三","初四","初五","初六","初七","初八","初九","初十","十一","十二","十三","十四","十五","十六","十七","十八","十九","二十","廿一","廿二","廿三","廿四","廿五","廿六","廿七","廿八","廿九","三十");returnt=Math.abs(CnDateofDate(e))%100,i[t]}functionDaysNumberofMonth(e){vart=e.getFullYear();100>t?t+=1900:t;vari=t;returnt+="/"+(e.getMonth()+1),i+="/"+(e.getMonth()+2),t+="/1",i+="/1",parseInt((Date.parse(i)-Date.parse(t))/864e5)}functionCnEra(e){vart=newArray("甲","乙","丙","丁","戊","己","庚","辛","壬","癸"),i=newArray("子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥");returnt[e%10]+i[e%12]}functionCnDateofDateStr(e){return"零月"==CnMonthofDate(e)?"请调整您的计算机日期!":"农历"+CnMonthofDate(e)+CnDayofDate(e)}functionSolarTerm(e){vart=newArray("小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至"),i=newArray(1272060,1275495,1281180,1289445,1299225,1310355,1321560,1333035,1342770,1350855,1356420,1359045,1358580,1355055,1348695,1340040,1329630,1318455,1306935,1297380,1286865,1277730,1274550,1271556),a=31556926,n=newDate(1901);for(n.setTime(94712046e4);e.getFullYear()<n.getFullYear();)n.setTime(n.getTime()-1e3*a);for(;e.getFullYear()>n.getFullYear();)n.setTime(n.getTime()+1e3*a);for(varr=0;e.getMonth()>n.getMonth();r++)n.setTime(n.getTime()+1e3*i[r]);e.getDate()>n.getDate()&&(n.setTime(n.getTime()+1e3*i[r]),r++),e.getDate()>n.getDate()&&(n.setTime(n.getTime()+1e3*i[r]),23==r?r=0:r++);varo="";returne.getDate()==n.getDate()&&(o+="<i>"+t[r]+"</i>"),o}</script>

❻ php怎么计算出每年春节 中秋 端午节 是公历的多少号

根据农历来计算的。。 把农历一些日期设定关键字得成。。

❼ php日历模块的运算逻辑求解!如何求日期对应的星期几!

现在以2010年6月14日为例说明。6月份共有30天,在这个日历表中共5行,首先需要确定当前所在的日期(当然也可以指定一个日期),比如14日,通过表格可以知道它在第3行对应星期一那列(第3周)。通常每个月第1天不是在表格开始的位置,位置并不固定,同样不固定的还有每个月的周数,有时候是4周,有时候是5周。这样,想要完成这个日历表格就需要确定一些基础的日期变量,下面具体来看需要设定的基础变量。

PHP提供了date()函数,该函数提供了丰富的日期处理功能。现在需要获得的数据有两个,第一个是当月的总天数;第二个是该月的第一天所在星期中的第几天,数字表示0(表示星期天)到6(表示星期六)。通过date()函数可以很容易获得上面的数据。

<?php

//date()函数的基本用法

$year = date('Y'); //获得年份,例如2006

$month = date('n'); //获得月份,例如04

$day = date('j'); //获得日期,例如3

?>

通过mktime()函数和date()函数获得当月的总天数。

//获得当月的总天数

$daysInMonth = date("t",mktime(0,0,0,$month,1,$year));

同样是组合使用mktime()函数和date()函数,获得该月的第一天所在星期中的第几天,数字表示0(表示星期天)到6(表示星期六)。

//获得每个月的第一天,例如4

$firstDay = date("w", mktime(0,0,0,$month,1,$year));

现在重新来观察下这个日历表格,我们发现,表格中的值是从1到x(当月的总天数)。我们可以形象地通过一个坐标来表示每一个位置(x,y),表格的起始位置是(0,0),结束位置是(5,4),当月第一天的起始位置是(0,3)。现在来创建一个二维数组来存储对应的日期。

(1)需要获得表格的数目。

//计算数组中的日历表格数

$tempDays = $firstDay + $daysInMonth;

(2)需要算出该月一共有几周(即表格的行数)。

//获得表格行数

$weeksInMonth = ceil($tempDays/7);

(3)在获得行数的变量之后,创建一个二维数组用来存放日期信息,代码如下:

<?php

for($j=0;$j<$weeksInMonth;$j++)

{

for($i=0;$i<7

;$i++)

{

$counter ++;

$week [$j] [$i] = $counter;

}

}

?>

(4)细心的读者可能发现,上面的代码其实是一个雏型,因为它处理出来的数据并没有过滤那些空白的表格单元。下面来继续改造下这段代码,加入过滤和构造的部分。改造后的代码如下:

<?php

//创建日期二维数组

for($j = 0; $j < $weeksInMonth; $j ++) {

for($i = 0; $i < 7; $i ++) {

$counter ++;

$week [$j] [$i] = $counter;

//日期偏移量

$week [$j] [$i] -= $firstDay;

if (($week [$j] [$i] < 1) || ($week [$j] [$i] > $daysInMonth)) {

$week [$j] [$i] = "";

}

}

}

?>

(5)在获得正确的二维数组之后,就可以通过foreach()函数将存储的日期信息遍历出来,同时插入HTML标签创建日期

不知是否正确,转自我的一个朋友

❽ 农历是怎么算出来的啊

农历

农历的历月长度是以朔望月为准的,大月30天,小月29天,大月和小月相互弥补,使历月的平均长度接近朔望月。

农历固定地把朔的时刻所在日子作为月的第一天——初一日。所谓“朔”,从天文学上讲,它有一个确定的时刻,也就是月亮黄经和太阳黄经相同的那一瞬间。(太阳和月亮黄经的计算十分繁琐和复杂,这里就不予介绍了)

至于定农历日历中月份名称的根据,则是由“中气”来决定的。即以含“雨水”的月份为一月;以含“春分”的月份为二月;以含“谷雨”的月份为三月;以含“小满”的月份为四月;以含“夏至”的月份为五月;以含“大暑”的月份为六月;以含“处暑”的月份为七月;以含“秋分”的月份为八月;以含“霜降”的月份为九月;以含“小雪”的月份为十月;以含“冬至”的月份为十一月;以含“大雪”的月份为十二月。(没有包含中气的月份作为上月的闰月)

农历的历年长度是以回归年为准的,但一个回归年比12个朔望月的日数多,而比13个朔望月短,古代天文学家在编制农历时,为使一个月中任何一天都含有月相的意义,即初一是无月的夜晚,十五左右都是圆月,就以朔望月为主,同时兼顾季节时令,采用十九年七闰的方法:在农历十九年中,有十二个平年,为一平年十二个月;有七个闰年,每一闰年十三个月。

为什么采取“十九年七闰”的方法呢? 一个朔望月平均是29.5306日,一个回归年有12.368个朔望月,0.368小数部分的渐进分数是1/2 、1/3 、3/8 、4/11 、7/19 、46/125, 即每二年加一个闰月,或每三年加一个闰月,或每八年加三个闰月……经过推算,十九年加七个闰月比较合适。因为十九个回归年=6939.6018日,而十九个农历年(加七个闰月后)共有235个朔望月,等于6939.6910日,这样二者就差不多了。

七个闰月安插到十九年当中,其安插方法可是有讲究的。农历闰月的安插,自古以来完全是人为的规定,历代对闰月的安插也不尽相同。秦代以前,曾把闰月放在一年的末尾,叫做“十三月”。汉初把闰月放在九月之后,叫做“后九月”。到了汉武帝太初元年,又把闰月分插在一年中的各月。以后又规定“不包含中气的月份作为前一个月的闰月”,直到现在仍沿用这个规定。

为什么有的月份会没有中气呢? 节气与节气或中气与中气相隔时间平均是30.4368日(即一回归年排65.2422日平分12等分),而一个朔望月平均是29.5306日,所以节气或中气在农历的月份中的日期逐月推移迟,到一定时候,中气不在月中,而移到月末,下一个中气移到另一个月的月初,这样中间这个月就没有中气,而只剩一个节气了。

上面讲过,古人在编制农历时,以十二个中气作为十二个月的标志,即雨水是正月的标志,春分是二月的标志,谷雨是三月的标志……把没有中气的月份作为闰月就使得历月名称与中气一一对应起来,从而保持了原有中气的标志。

从十九年七闰来说,在十九个回归年中有228个节气和228个中气, 而农历十九年有235个朔望月,显然有七个月没有节气和七个月没有中气,这样把没有中气的月份定为闰月,也就很自然了。

农历月的大小很不规则,有时连续两个、三个、四个大月或连续两个三个小月,历年的长短也不一样,而且差距很大。节气和中气,在农历里的分布日期很不稳定,而且日期变动的范围很大。这样看来,农历似乎显得十分复杂。其实。农历还是有一定循环规律的:由于十九个回归年的日数与十九个农历年的日数差不多相等,就使农历每隔十九年差不多是相同的。每隔十九年,农历相同月份的每月初一日的阳历日一般相同或者相差一、二天。每隔十九年,节气和中气日期大体上是重复的,个别的相差一、两天。相隔十九年闰月的月份重复或者相差一个月。

热点内容
linux应用程序开发pdf 发布:2025-07-15 10:11:37 浏览:910
解压冷知识 发布:2025-07-15 10:11:35 浏览:78
outlook邮件的服务器是什么 发布:2025-07-15 09:45:59 浏览:482
如何安排资产配置 发布:2025-07-15 09:33:24 浏览:906
更新传送服务器目的地址失败 发布:2025-07-15 09:27:05 浏览:484
c语言else的用法 发布:2025-07-15 09:19:54 浏览:119
tnt苹果核安卓怎么加好友 发布:2025-07-15 09:05:15 浏览:239
年轻人运行内存为什么比安卓好 发布:2025-07-15 08:52:03 浏览:515
怎么配置组策略 发布:2025-07-15 08:52:02 浏览:246
pythonjson格式 发布:2025-07-15 08:42:54 浏览:678