日歷演算法
Ⅰ 日歷計算
額。。
最直接的辦法,數過去,人生日歷可以顯示全年的日歷,你數下 吧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個月以上的。