当前位置:首页 » 操作系统 » 日历算法

日历算法

发布时间: 2022-01-16 02:10:43

Ⅰ 日历计算

额。。
最直接的办法,数过去,人生日历可以显示全年的日历,你数下 吧http://rili.160.com/tools/webrili.html

Ⅱ 农历的算法是怎么算的

农历一年为12或13个月,每个月天数依照月亮围绕地球运行周期而定,为29或30天,闰年为13个月,中国农历年平年为353或354天,闰年为384或385天,平均每年约为365.2422天(即地球环绕太阳一周的时间)。

农历基本上以19年为一周期,由于农历一年约为355日,与地球年相差约11日左右,所以每3年要置一闰月,每19年要置7个闰月。有闰月的年份也叫闰年,具体闰哪个月,则要视节气情况灵活而定。如公历的2001年5月27日、1982年5月27日和1963年5月27日这个日子,都是闰四月初五。

闰月加到哪个月,以农历历法规则推断,主要依照与农历的二十四节气相符合来确定。自冬至开始,逢单数为节气,逢双数为中气,如轮到一个月只有节气没有中气,即为上一个月的闰月。农历的闰月天数与正常月份天数一样,为29或30天。

(2)日历算法扩展阅读:

农历的优点:

1.农历是定历,它具有天文年历的特性,能很好地和各种天象对应,如它的节气严格对应太阳高度,历日较严格地对应月相,闰月的不发生频率和发生频率对应地球近日点和远日点,其它天象如日出日没,晨昏蒙影,五星方位,日月食,潮汐等,就连历月也大致对应太阳高度;

2.农历历月的天数只有29日和30日两种,且由定朔日规定,人为因素最小,不易随意改动;

3.岁首有较强的天文学意义,具有阴月阳年的天文学意义;

4.阴阳合历,最体现汉民族天人合一、阴阳和谐的传统文化;

5.干支纪年和十二生肖纪年循环使用;由于它包含节气十分利于四季划分,由于它包含月相,所以也十分反映潮汐,日月食等天象和月亮对气候的影响。

参考资料来源:农历(中国传统历法)-网络



Ⅲ 日历(万年历)算法最好是用C语言可以写出来的,说出意思就行,代码不用给了

以前写了一个
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<windows.h>
#include<conio.h>
#include<math.h>
void tiangan(int x)
{char a[][10]={"甲","乙","丙","丁","戊","己","庚","辛","壬","癸"};
int i=x-1864;
i=i%10;
if(i>=0)
printf("\t\t%s",a[i]);
else
{while(i<0)
i=i+10;
printf("\t\t%s",a[i]);
}
}
void di(int x)
{char a[][10]={"子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"};
int i=x-1864;
i=i%12;
if(i>=0)
printf("%s年",a[i]);
else
{while(i<0)
i=i+12;
printf("%s年",a[i]);}
}
void shengxiao(int x)
{char a[][10]={"鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"};
int i=(x-1900)%12;
if(i>=0)
printf("(%s年)\n",a[i]);
else
{while(i<0)
i=i+12;
printf("(%s年)\n",a[i]);}
}
main()
{int i,y,x,day,j,s=0,sum=365,m,month,a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
printf("请输入年份:");
scanf("%d",&x);
tiangan(x);
di(x);
shengxiao(x);
day=(x+(x-1)/4-(x-1)/100+(x-1)/400)%7;
if(x%100==0)
{if(x%400==0)
{a[1]++;sum++;}
}
else if(x%4==0)
{a[1]++;sum++;}
if(day==0)
day=7;
sum=sum+day;
for(i=0;i<12;i++)
{printf("%d年%d月:\n\n",x,i+1);
printf(" 周日 周一 周二 周三 周四 周五 周六\n");
{for(j=1;j<=a[i];j++)
{if(j==1)
for(m=0;m<day%7*5;m++)
printf(" ");
printf("%5d",j);
if((day+j)%7==0)
printf("\n");}
day=(day+a[i])%7;
printf("\n\n");}}
getch();
}

Ⅳ C语言制作日历的算法

用了C++的cin和cout,直接改用scanf,和printf就可以了
#include<iostream>
using namespace std;

const int mon[2][12]={31,28,31,30,31,30,31,31,30,31,30,31,31,29,31,30,31,30,31,31,30,31,30,31};

int Is_Leap(int year){
if(year%400==0||(year%4==0&&year%100!=0)) return 1;
return 0;
}

void output(int fir,int n){
int i,j;
cout<<endl;
for(i=1;i<=12;i++){
cout<<i<<"月↓"<<endl<<"----------------------------"<<endl<<" 一 二 三 四 五 六 日"<<endl;
for(j=1;j<fir;j++) printf(" ");
for(j=1;j<=mon[n][i-1];j++){
printf("%4d",j);
fir++;
if(fir==8){
cout<<endl;
fir=1;
}
}
if(fir!=1) cout<<endl;
cout<<"----------------------------"<<endl;
}
cout<<endl;
}

int main()
{
int year,t;
while(cout<<"请输入要查询的年号(input 0 to end): "&&cin>>year&&year>0){
t=year-1;
t=(1+t+t/4-t/100+t/400)%7;
if(t==0) t=7;
output(t,Is_Leap(year));
}
return 0;
}

Ⅳ 日历是怎么计算的

不明白问题,无从解答啊、、、

Ⅵ 怎么计算日历农历

中国历法
在世界上中国是最早发明历法的国家之一,它的出现对中国经济,文化的发展有一定的影响.农历,中国传统历法之一,也被称为"阴历"、"殷历"、"古历"、"黄历"、"夏历"和"旧历"等.农历属于阴阳历并用,一方面以月球绕地球运行一周为一"月",平均月长度等于"朔望月",这一点与阴历原则相同,所以也叫"阴历";另一方面设置"闰月"以使每年的平均长度尽可能接近回归年,同时设置二十四节气以反映季节的变化特征,因此农历集阴、阳两历的特点于一身,也被称为"阴阳历".至今几乎全世界所有华人以及朝鲜半岛和越南等国家,仍旧使用农历推算传统节日如春节、中秋节、端午节等节日.
智慧的中国人在经年的劳作中发明了历法和节气.相传,在很久以前,有个名字叫万年的青年,有一天,他上山砍柴的时候,因为太阳晒得太热,坐在树荫下休息.突然,地上树影的移动启发了他.回家之后,他就用了几天几夜设计出一个测日影计天时的晷仪.可是,当天阴有雨或有雾的时候,就会因为没有太阳,而影响了测量.后来,山崖上的滴泉引起了他的兴趣,他又动手做了一个五层漏壶.天长日久,他发现每隔三百六十多天,天时的长短就会重复一遍.
当时的国君叫祖乙,天气的不测,也使他很苦恼.万年听说后,忍不住就带着日晷和漏壶去见国君,对祖乙讲了日月运行的道理.祖乙听后龙颜大悦,觉得很有道理.于是把万年留下,在天坛前修建日月阁,筑起日晷台和漏壶亭.祖乙对万年说:“希望你能测准日月规律,推算出准确的晨夕时间,创建历法,为天下的黎民百姓造福.”
冬去春来,年复一年.后来,万年经过长期观察,精心推算,制定出了准确的太阳历.当他把太阳历呈奉给继任的国君时,已是满面银须.国君深为感动,为纪念万年的功绩,便将太阳历命名为“万年历”,封万年为日月寿星.
人类根据太阳,月球及地球运转的周期制定了年、月、日,和顺应大自然与四季的春夏秋冬的法则,从而形成了历法.中国古代的历法有三种,阳历,阴历和阴阳合历.阳历也叫太阳历;阴历也叫太阴历,月亮历;阴阳合历,也就是俗称的农历.其中的阴阳合历一直沿到今天.为甚么农历可以沿用到今天呢。
在今天看来,当时历法的产生,是中国古人为了掌握农务的时候(简称农时),长期观察天文运行的结果.中国的农历之所以被称为阴阳合历,是因为它不仅有阳历的成份,又有阴历的成份.它把太阳和月亮的运行规则合为一体,作出了两者对农业影响的终结,所以中国的农历比纯粹的阴历或西方普遍利用的阳历实用方便.农历是中国传统文化的代表之一,它的准确巧妙,常常被中国人视为骄傲.
介绍汉族地区使用的农历又称夏历,是一种阴阳合历,以月相定月份,以太阳定年周期.以太阳和月亮同时升起,因而在地球上看不到月亮的朔日为每月的开始,每月长短根据月相不同,可能为30日或29日,12个月为一年.
将太阳年划分为24个节气,第1、3、……23等奇数为"节",第2、4、……24为"气",或"中气".由于太阳年周期和以月相为周期的12个月不一致,约隔每四年增加一个月,增加到没有中气的月后面,如2004年2月只有一个节"惊蛰",没有气,将闰月增加到2月后为闰2月.每年的闰月位置都不太一致.
农历一年一般为12个月,一个月天数依照月亮围绕地球运行周期而定,为29或30天,闰年为13月,中国农历年平年为353或354天,闰年为384或385天,平均每年约为365.2422天(即太阳环绕地球一周的时间).
农历可按如下方式推断:当月亮运行到地球与太阳之间成一直线的那天,为每个月的开始,称为(朔日)初一.一年中日最长的一天为夏至,日最短为冬至,根据这两点将一年24等分,得到24节气.通常,离立春最近的那个朔日(春节)所在的月,为正月.春节在公历1月20日至2月20日之间.
从古代起,每个朝代都要"立正朔",夏朝时,以冬至月为正月,按干支记年法是第一个月,即"子"月;商朝改正朔,推后一月,周朝又改正朔,又推后一月,汉朝定立太初历,以后每朝虽然仍然立正朔,但民间不再改变,始终以正月为新年,但"子"月仍然维持在11月.
每位皇帝即位时,要改年号纪年,有时兴之所至随时改年号,但从明朝开始,皇帝在位时不再改年号,但新皇帝即位时仍然要改,这种纪年法的缺陷是上一位皇帝的末年和下一位皇帝的元年吻合,如"同治14年"就是"光绪元年",因为这一年是上一位皇帝去世,下一位皇帝即位的同一年.可是干支纪年始终维持,除了清代的康熙,没有一位皇帝在位超过60年,所以只要说某皇帝年号和干支,年代就相当清楚,如"光绪乙亥"就是同治14年或光绪元年或1875年,同治在位期间没有过乙亥年.
中国其他民族有自己的节日,如苗族四月八,壮族三月三,白族三月街等,都是以中国农历为依据.汉族的传统节日如新年(春节)、元宵节、端午节、盂兰盆节、中秋节等都是以农历为依据.
早期历法
中国的历法与纪年采用阴阳干支三合历;上古时期,根据不同的农业牧业生产情况需要,分别产生过太阳历法和太阴历法.农历作为中国传统历法,最早源自何时无从考究,据出土的甲骨文和古代中国典籍多有记载,现时阴阳合一的历法规则一般认为源自殷商时期.从黄帝历法到清朝末期启用西历(公历)始,中国历史上一共产生过102部历法,这些历法中有的曾经对中国文化与文明产生过重大影响,比如夏历、商历、周历、西汉太初历、隋唐大衍历和皇极历等,有的历法虽然没有正式使用过,但对养生、医学、思想学术、天文、数学等起到过重大作用,如西汉末期的三统历和唐朝的皇极历法等.汉朝以前的古代中国历法以366天为一岁,用"闰月"确定四时和确定岁的终始;已经有日、月、旬和时的时间单位,具备了阴阳历的技术;观察到了五大行星和日月的运动规律,用"闰月""减差法"来调整时差;历法实施成为重要大事,主要内容之一是"以闰月定四时成岁"和"正闰余",即确定闰月位置和如何减去多余出来的天数(不是加上缺少的天数),由此来确定年岁的终结和开始.到了春秋战国时期,由于周朝王室衰落,诸侯各行其是,因此出现多轨制历法,亦即各诸侯和各地部落还有自己的地方历法;秦朝为中国历史上最后一个"以闰月定四时成岁"的历法.
汉朝初期开始中国历法出现了大转折,全国统一历法,历法也成为了一门较为独立的科学技术.汉武帝责成司马迁等人编写了《太初历》,之后刘歆作《三统历》,这两历的重要特点是年岁合一,一年的整数天数是365天,不再之前历法的366天.以"加差法"替代之前的"减差法"以调整时差,年岁周期起始相当固定,用数学计算就能确定闰月,用不着"考定星历,建立五行",至此,阴阳五行基本上退出了历法.之后中国历朝颁布的历法,均与太初历大同小异;中华民国成立后,纪年采用西历或民国纪年并用.

Ⅶ 有关日历计算,急~

以下是用C++写的

#include <iostream.h>

struct InNum
{
int num;
InNum *next;
};

void main()
{
int year=2000,day=1,mouth=1,dayTemp=0,week0=6,week;
InNum *head,*last,*p;
head=new InNum;
head->next=NULL;
last=head;
p=new InNum;
cin>>p->num;
p->next=NULL;
last->next=p;
last=last->next;

while(p->num>0)
{
p=new InNum;
cin>>p->num;
p->next=NULL;
last->next=p;
last=last->next;
}

p=head->next;

while(p->num>=0)
{
p->num--;
while(p->num>=365)
{
year++;
p->num-=365;
}
dayTemp=p->num;
while(p!=NULL && p->num>28)
{
if(2==mouth && 0==year%4 && p->num>=29)
{
mouth++;
p->num-=29;
}
else if(2==mouth && p->num>=28)
{
mouth++;
p->num-=28;
}
else if(mouth<=8 && p->num>mouth%2+30)
{
p->num-=(mouth%2+30);
mouth++;
}
else if(mouth>=9 && p->num>(mouth+1)%2+30)
{
p->num-=((mouth+1)%2+30);
mouth++;
}
else
break;
}
day = p->num;
week = (dayTemp + year-2001+1)%7;
cout<<year<<'-'<<mouth<<'-'<<day<<' ';
switch(week)
{
case 1: cout<<"Monday";break;
case 2: cout<<"Tuesday";break;
case 3: cout<<"Wednesday";break;
case 4: cout<<"Thursday";break;
case 5: cout<<"Friday";break;
case 6: cout<<"Saturday";break;
default:
cout<<"Sunday";
}
cout<<endl;
year=2000;
day=1;
mouth=1;
p=p->next;
}

while(head!=NULL)
{
p=head;
head=head->next;
delete p;
}

}

Ⅷ 怎么计算日历

阴历和阳历的区别和关系:

阳历也就是公历,它是国际通用的。阳历以地球绕太阳转一圈的时间定做一年,共365天5小时48分46秒。平年只计365天这个整数,不计尾数;一年分做12个月,大月31天,小月30天,二月只有28天。四年的尾数积累起来共1天光景,加在第四年的二月里,这一年叫做闰年。所以闰年的二月有29天。阴历以月亮圆缺一次的时间定做一个月,共29天半。为了算起来方便,大月定做30天,小月29天,一年12个月中,大小月大体上交替排列。阴历一年只有354天左右,也没有平年闰年的差别。

阴历不考虑地球绕太阳的运行,因此使得四季的变化在阴历上就没有固定的时间,它不能反映季节,这是一个很大的缺点。为了克服这个缺点,后来人们定了一个折衷的历,就是所谓阴阳合历。现在我国还在使用的夏历(也有人叫它农历或阴历),就是这种阴阳合历。它跟阴历一样,也以月亮圆缺一次的时间定做一个月,也是大月30天,小月29天,可是它又用加闰月的办法,使得平均每年的天数跟阳历全年的天数相接近,来调整四季。夏历约每过二、三年多一个闰月。“阴历”又名“太阴历”,系以月球绕行地球一周为一月,再配合地球绕日一周之时数为一年,实际上等于阴阳合历,我国在民国元年前采用此历,为与现行之历相对称,故名之曰“旧历”。一般人以为阴历适合于农家,而名之日“农历”。

月球运行的轨道,名曰白道,白道与黄道同为天体上之两大圆,以五度九分而斜交,月球绕地球一周,出没于黄道者两次,历二十七日七小时四十三分十一秒半,为月球公转一周年所需之时间,谓之“恒星月”。唯当月球绕地球之时,地球因公转而位置亦有变动,计前进二十七度余,而月球每日行十三度十五分,故月球自合朔,全绕地球一周,复至合朔,实需二十九日十二时四十四分二秒八,谓之“朔望月”,习俗所谓一月,即指朔望月而言。

因每月天数不能有奇零,故阴历一个月为二十九日或三十日。每月以合朔之日为首,即以朔日为初一日。每年以接近立春之朔日为岁首。

地球绕日一周,即月球绕地球十二次又三分之一,一年内之月数不能有奇零,故一年十二个月,仅三百五十四日,与岁实相比较,约余十一日,积至三年,余三十三日,故每三年须置一闰月,尚余三日或四日,再积二年,共余二十五日或二十六日,可置一闰月,平均计算,每十九年须置七闰。以有节无气之月为闰月,有闰月之年为闰年,闰年有十三个月,平年则十二个月。

Ⅸ 世界上的日历计算方法有哪些

原来的日历工作天数为20.92天/月。
新的休假制度调整后变为20.83天/月。
以每年365天计算
每年52个双休日:52X2=104
每年11个法定节假日
元旦:1天
春节:3天
清明:1天
五一:1天
端午:1天
中秋:1天
国庆:3天
(365-104-11)÷12=20.83天/月

日工资、小时工资的折算
按照《劳动法》第五十一条的规定,法定节假日用人单位应当依法支付工资,即折算日工资、小时工资时不剔除国家规定的11天法定节假日。据此,日工资、小时工资的折算为:
日工资:月工资收入÷月计薪天数
小时工资:月工资收入÷(月计薪天数×8小时)。
月计薪天数=(365天-104天)÷12月=21.75天

电根据出台的《职工带薪年休假条例》,机关、团体、企业、事业单位、民办非企业单位、有雇工的个体工商户等单位的职工,连续工作1年以上的,享受带薪年休假。对职工应休未休的年休假天数,单位应当按照该职工日工资收入的300%支付年休假工资报酬。

中国国务院12月7日举行的第198次常务会议已通过《职工带薪年休假条例》。该条例将从2008年1月1日起施行。该条例全文今天通过媒体发布。

该条例规定,单位应当保证职工享受年休假。职工在年休假期间享受与正常工作期间相同的工资收入。

按照这一条例,职工累计工作已满1年不满10年的,年休假5天;已满10年不满20年的,年休假10天;已满20年的,年休假15天。但国家法定休假日、休息日不计入年休假的假期。

按照该条例,单位应根据生产、工作的具体情况,并考虑职工本人意愿,统筹安排职工年休假。年休假在1个年度内可以集中安排,也可以分段安排,一般不跨年度安排。单位因生产、工作特点确有必要跨年度安排职工年休假的,可以跨1个年度安排。

单位确因工作需要不能安排职工休年休假的,经职工本人同意,可以不安排职工休年休假。对职工应休未休的年休假天数,单位应当按照该职工日工资收入的300%支付年休假工资报酬。

该条例对职工不享受当年的年休假的情形也作出了规定。有以下情形之一的,不享受当年的年休假:职工依法享受寒暑假,其休假天数多于年休假天数的;职工请事假累计20天以上且单位按照规定不扣工资的;累计工作满1年不满10年的职工,请病假累计2个月以上的;累计工作满10年不满20年的职工,请病假累计3个月以上的;累计工作满20年以上的职工,请病假累计4个月以上的。

热点内容
长沙java培训机构哪家好 发布:2024-11-14 12:40:53 浏览:228
外存储器硬盘能存储的高清电影数 发布:2024-11-14 12:33:23 浏览:265
python分号作用 发布:2024-11-14 12:31:50 浏览:223
方舟编译器下载要钱吗 发布:2024-11-14 12:29:20 浏览:62
jspoa源码 发布:2024-11-14 12:21:31 浏览:420
不记得了密码怎么办 发布:2024-11-14 12:18:58 浏览:442
python字符串的大小 发布:2024-11-14 12:17:24 浏览:222
源码编辑软件 发布:2024-11-14 12:15:00 浏览:386
java中object 发布:2024-11-14 12:11:48 浏览:636
买车时哪些配置需要另外加钱 发布:2024-11-14 12:10:19 浏览:534