万年历报告,正宗老黄历版本

2023-09-21崇庆运势网热度: 3848

c++万年历课程设计报告

自己慢慢看吧。。万年历代码
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
void mnumain()/*显示菜单*/
{
printf("\n 万年历\n");
printf("***********************************\n");
printf("\t1:按年查询\n");
printf("\t2:按月查询\n");
printf("\t3:按日查询\n");
printf("\t0:退出\n");
printf("***********************************\n");
}
void main()/*主函数*/
{
int date,year,month,day;
int PutinYear();
int PutinMonth();
int PutinDay();
void PrintDate(int ,int, int);
char ch;
int nMenu;
do
{
mnumain();
ch=getch();
nMenu=ch-'0';
switch(nMenu)
{
case 1:
printf("你选择的是[按年查询]\n");
year = PutinYear ();
void GetMonth(int year);
GetMonth (year);
break;
case 2:
system("cls");
printf("你选择的是[按月查询]\n");
year=PutinYear ();
month=PutinMonth ();
void PrintMonth(int month, int year);
PrintMonth(month, year);
printf("\n");
break;
case 3:
system("cls");
printf("你选择的是[按日查询]\n");
year=PutinYear ();
month=PutinMonth ();
day=PutinDay ();
PrintDate(year,month,day);
break;
case 0:
system("cls");
printf("你选择的是[退出]");
getch();
break;
default:
printf("你的选择是错误的!!!!\n");
getch();
break;
}
}
while(nMenu!=0);
}
int PutinYear() /*按年查询*/
{
int year;
while(1)
{
printf("请输入年份 : ");
scanf("%d", &year);
return year;
}
}
int PutinMonth() /*按月查询*/
{
int month;
while(1)
{
printf("请输入月份 :");
scanf("%d",&month);
return month;
}
}
int PutinDay(void) /*按日查询*/
{
int day;
while(1)
{
printf("请输入日期 :");
scanf("%d",&day);
return day;
}
}
int LeapYear(int year) /*判断闰年*/
{
if(year%4==0&&year%100||year%400==0)
return 1;
else
return 0;
}
void GetMonth (int year) /*求月份*/
{
int month;
for(month = 1; month <= 12; month++)
{
void PrintMonth(int month, int year);
PrintMonth(month, year);
printf("\n");
}
}
enum{Sunday, Monday, Tuesday, Wednesday,
Thursday, Friday, Saturday};
void PrintMonth(int month, int year) /*显示每月*/
{
int weekday, ndays, day;
char *MonthName(int month);
printf(" %s", MonthName(month));
printf("\n 周日 周一 周二 周三 周四 周五 周六\n");
int MonthDays(int year, int month);
ndays = MonthDays(year, month);
int FirstDay(int year, int month);
weekday = FirstDay(year, month);
void Blank(int weekday);
Blank(weekday);
for(day = 1; day <= ndays; day++)
{
printf(" %4d", day);
if(weekday == Saturday)
{
printf("\n");
}
weekday = (weekday + 1) % 7;
}
if(weekday != Sunday)
printf("\n");
}
char *MonthName(int month)
{
char *name[] ={ " ", "一月", "二月", "三月","四月", "五月", "六月", "七月", "八月",
"九月", "十月", "十一月", "十二月" };
return (month < 1 || month > 12) ? name[1] : name[month];
}
int MonthDays(int year, int month) /*求每月天数*/
{
int LeapYear(int year);
switch(month)
{
case 2 :
if(LeapYear(year))
{
return 29;
}
return 28;
case 4 : case 6 : case 9 : case 11 : return 30;
default : return 31;
}
}
int FirstDay(int year, int month) /*求一年第一天*/
{
int i, weekday;
weekday = Monday;
for(i = 1; i < year; i++)
{
weekday = (weekday + 365) % 7;
if(LeapYear(i))
{
weekday = (weekday + 1) % 7;
}
}
for(i = 1; i < month; i++)
{
int MonthDays(int year, int month);
weekday = (weekday + MonthDays(year, i)) % 7;
}
return weekday;
}
void Blank(int weekday)
{
int i;
for(i = 0; i < weekday; i++)
{
printf(" ");
}
}
void PrintDate(int year,int month,int date) /*显示具体日期*/
{
int day;
int getday(int year,int month,int date);
day=getday(year,month,date);
if(day==0)
printf("\n%d-%d-%d is Sunday!\n",year,month,date);
if(day==1)
printf("\n%d-%d-%d is Monday!\n",year,month,date);
if(day==2)
printf("\n%d-%d-%d is Tuesday!\n",year,month,date);
if(day==3)
printf("\n%d-%d-%d is Wednesday!\n",year,month,date);
if(day==4)
printf("\n%d-%d-%d is Thursday!\n",year,month,date);
if(day==5)
printf("\n%d-%d-%d is Friday!\n",year,month,date);
if(day==6)
printf("\n%d-%d-%d is Saturday!\n",year,month,date);
}
int getday(int year,int month,int date) /*求累计天数*/
{
int flag,s,i;
int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int cont=0;
flag=LeapYear(year);
if(flag==1)
a[2]++;
for(i=1;i<month;i++)
{
cont=cont+a[i];
}
cont=cont+date;
s=year+1+(year-1)/4+(year-1)/100+(year-1)/400+cont;
return s%7;
}

万年历是什么?

什么是万年历呢,就是记录一定时间范围内(比如100年或更多)的具体阳历与阴历的日期的年历,方便有需要的人查询使用。万年只是一种象征,表示时间跨度大。
要想追寻万年历的由来,那故事得从远古时代的西周说起……有名樵夫唤做万年,有一天他上山砍柴,砍罢了就坐在树下休息。他眼望著树影出神,心中想的,仍是如何将节令定准的事。不知不觉过了大半个时辰,他才发现地上的树影已悄悄地移动了方位。万年灵机一动,心想,何不利用日影的长短来计算时间呢?回到家后,万年就设计了一个「 日 晷 仪 」。可是,一遇上阴雨天,日晷仪又失去效用了。有一天,万年在泉边喝水,看见崖上的水很有节奏的往下滴,规律的滴水声又启发了他的灵感。回家后,万年就动手做了一个五层的漏壸,利用漏水的方法来计时。这么一来,不管天气阴晴,都可以正确地掌握时间了。有了计时的工具,万年更加用心的观察天时节令的变化。经过长期的归纳,他发现,每隔三百六十多天,天时的长短就会重覆一次。只要搞清楚日月运行的规律,就不用担心节令不准了。 万年就带著自制的日晷仪及水漏壸去觐见天子祖乙,说明节令不准与天神毫不相干。祖乙觉得万年说的很有道理,就把万年留下,在天坛前盖起日晷台、漏壸亭,又派了十二个童子供万年差遣。从此以后,万年得以专心致志的研究时令。过了一段日子,祖乙派阿衡去了解万年制历的情况。万年拿出自己推算出的初步成果,说:「日出日落三百六,周而复始从头来。草木荣枯分四时,一岁月有十二圆」。阿衡听后,非常忐忑不安,他担心制出准确的历法,得到天子重用,直接的威胁到他的地位。於是阿衡就以重金收买了一名刺客,准备行刺万年。无奈万年全心研究时令,几乎从不离开所住的日月阁。刺客只好趁夜深人静之时,挽起了箭射杀万年。只听得「嗖」的一声,一箭射中了万年的胳膊,万年应声倒下。童子们高喊抓拿刺客,守卫的兵士及时抓住了刺客,将他扭送天子。 祖乙问明了是阿衡的诡计,就下令将阿衡收押,亲自到日月阁来探望万年。万年就把自己最新的研究成果报告给祖乙:「现在申星追上了百星蚕百星,星象复原, 子时夜交,旧岁已完,时又始春,希望天子定个节名吧!」祖乙说:「春为岁为,就叫春节吧。」当时祖乙见万年为了制历,日夜劳瘁又受了箭伤,心中不忍,就请他入宫调养身体,万年答道:「多谢天子厚爱,只是目前的太阳历还是草历,不 够准确,要把岁末尾时也闰进去。否则,久而久之,又会造成节令失常。为了不负众望,我必须留下来,继续把太阳历定准。」又经过了数十个寒暑,万年精心制定的太阳历终於完成了。当他把太阳历献给祖乙时,已是个白发苍苍的老人了。 祖乙深受感动,就把太阳历定名为「万年历」,并封万年为「日月寿星」,以上就是「万年历」名称的由来。

民间推算万年历,推算万年历口诀

推算万年历

,很多很多年以前,在山青水秀的定阳山下,有个不太大的村庄。村头山坡上,有间小石屋,住着一个名叫万年的青年。他家境贫寒,以打柴挖药为生。那时节令很乱,弄得庄稼人无法种田。万年是个有心计的青年,想把节令定准,可是,不知从哪里下手。

一天,万年上山打柴,坐在树下歇息,树影的移动启发了他,他就制了一个日晷,测日影计算一天的长短。可是,天有云阴雾雨,影响测记。他就想再做一件记时器具,好弥补日晷的不足。那天,他上山挖药,来到泉边喝水,崖上的泉水有节奏地滴答滴答地响着,引起了他的注意。他望着泉水出。思索了一阵,回到家里,画了画,试了试,做成了五层漏壶。从此,他测日影,望漏水,勤勤奋奋。慢慢的,他发现每隔三百六十多天,天时的长短就会从头重复一遍。最短的一天在冬至。

那时的叫祖乙。节令失常,使他很着急。就召集百官。朝议节令失常之困。节令官叫阿衡,不知道日月运行的规律,就说是人们作事不慎,得罪了。只有跪祭,才能得到上神的宽恕。祖乙就素沐浴。领百官去天坛,并传谕全国,设台祭天。

但祭来祭去,不见收效,时令照旧很乱;各地的老百姓为了修建祭台又得服役,又得出捐,真是胆汁拌黄连。苦中加苦。万年忍不住了。就带着他的日晷和漏壶会见。

万年见了,说了冬至点,讲了日月运行周期。祖乙听罢,心中大喜,即令大兴土木,在天坛前修建日月阁,筑上日晷台,造上漏壶亭。又拨了十二个服侍万年。万年让六个守日晷,六个守漏壶,精心记录,按时报告。

一天,祖乙让阿衡去日月阁询问制历情况,万年指着草历说:”日出日落三百六,周而复始从头来。草木枯荣分四时,一岁月有十二圆。”阿衡一听,深觉是理,心中却不安起来。他暗想:要是万年把节令定准,心喜,重用万年,谁还听我阿衡的?阿衡想啊想啊,一心想把万年除掉。

那天阿衡打听出一个善射的利客,就派人请到家里,摆上酒筵,说明原由,许以重礼。刺客答应当夜就去行刺。天交二鼓,刺客趁酒兴离开了阿衡,向日月阁奔去。怎奈天坛周围,日月阁下,有卫士严守,刺客不能近前,就拉弓搭箭向日月阁上正观星象的万年射去。谁知刺客喝酒过多,眼睛发昏,飞箭只射中万年的胳膊。万年哎呀一声倒在地上,众急呼拿贼。卫士们听到喊声,一齐出动,捉住刺客,扭见。

祖乙问明实情,传令将阿衡收了监,又立印出宫登上日月阁看望万年。万年非常感动,指着申星说:”申星追上了蚕百星,星象复原,夜交子时,旧岁已完,时又始春,望定个节吧。”

祖乙说:”春为岁首,就节吧。爱卿入阁,三载不出,披肝沥胆,以月圆为准制出太阴历,真是功高德重。如今爱卿被奸佞暗算,且随我到宫中调养吧。”

万年说:”太阴历虽然草创,但还不十分准确,岁尾还剩有点滴时辰。如不把这岁末尾时润进去,日月如梭,过来过去又会错历。臣负所望,深受之恩,愿碎心日月阁,细心推算,把草历定准。”

就这样,万年在日月阁中,仔细观察草木麦菽的荣枯,精心推算,把岁末尾时积日成月润了进去。那年五月,祖乙到天坛行祭,祭罢,又登上日月阁,把祭神的五月鲜桃赐给万年。万年献上太阴历,祖乙望着日夜操劳的万年,眉也白了,须也白了,深受感动,就把太阴历定名为万年历,还封万年为日月寿星。因此,后来人们也把春节称做年,每每过年之时屋里挂上寿星图,象征新岁添寿,也是对功高德重的万年寄以怀情。

以上就是与推算万年历相关内容,是关于祖乙的分享。看完推算万年历口诀后,希望这对大家有所帮助!

c语言程序设计 万年历报告书

#include <stdio.h>
void main()
{
int year,month,day,days,sum,i,n=0,a;
char c;
redo: printf("请输入年/月/日(例如:2010/1/1):\n");
scanf("%d/%d/%d",&year,&month,&day);
if(month==1&&(day>=32||day<=0))
{
printf("输入有误!1月只能有31天!\n");
goto redo;
}
if(month==2)
{
if((year%400==0)||(year%4==0&&year%100!=0))
{
if(day>=30||day<=0)
{
printf("输入有误!%d年是闰年,二月只能有29天!\n",year);
goto redo;
}
}
else if(day>=29||day<=0)
{
printf("输入有误!%d年是平年,二月只能有28天!\n",year);
goto redo;
}
}
if(month==3&&(day>=32||day<=0))
{
printf("输入有误!3月只能有31天!\n");
goto redo;
}
if(month==4&&(day>=31||day<=0))
{
printf("输入有误!4月只能有30天!\n");
goto redo;
}
if(month==5&&(day>=32||day<=0))
{
printf("输入有误!5月只能有31天!\n");
goto redo;
}
if(month==6&&(day>=31||day<=0))
{
printf("输入有误!6月只能有30天!\n");
goto redo;
}
if(month==7&&(day>=32||day<=0))
{
printf("输入有误!7月只能有31天!\n");
goto redo;
}
if(month==8&&(day>=32||day<=0))
{
printf("输入有误!8月只能有31天!\n");
goto redo;
}
if(month==9&&(day>=31||day<=0))
{
printf("输入有误!9月只能有30天!\n");
goto redo;
}
if(month==10&&(day>=32||day<=0))
{
printf("输入有误!10月只能有31天!\n");
goto redo;
}
if(month==11&&(day>=31||day<=0))
{
printf("输入有误!11月只能有30天!\n");
goto redo;
}
if(month==12&&(day>=32||day<=0))
{
printf("输入有误!12月只能有31天!\n");
goto redo;
}
if(month>=1&&month<=12)
{
if(year%400==0||(year%4==0&&year%100!=0))
printf("%d年是闰年。\n",year);
else printf("%d年是平年。\n",year);
}
if(year>=1901) goto loop1;
else goto loop2;
loop1: for(i=1901;i<year;i++)
{
if(i%400==0||(i%4==0&&i%100!=0))
n++;
}
days=(year-1901-n)*365+n*366;
switch(month)
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;
default:printf("一年内只能有12个月!请重新输入!\n");goto redo;
}
a=sum+day+days;
if((year%400==0||(year%4==0&&year%100!=0))&&(month>=3))
a++;
if(a%7==1) printf("%d年%d月%d日是星期二。\n",year,month,day);
if(a%7==2) printf("%d年%d月%d日是星期三。\n",year,month,day);
if(a%7==3) printf("%d年%d月%d日是星期四。\n",year,month,day);
if(a%7==4) printf("%d年%d月%d日是星期五。\n",year,month,day);
if(a%7==5) printf("%d年%d月%d日是星期六。\n",year,month,day);
if(a%7==6) printf("%d年%d月%d日是星期天。\n",year,month,day);
if(a%7==0) printf("%d年%d月%d日是星期一。\n",year,month,day);
goto label;
loop2: for(i=1900;i>year;i--)
{
if(i%400==0||(i%4==0&&i%100!=0))
n++;
}
days=(1900-year-n)*365+n*366;
switch(month)
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=58;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;
default:printf("一年内只能有12个月!请重新输入!\n");goto redo;
}
if(year%400==0||(year%4==0&&year%100!=0))
a=366-(day+sum)+days;
else a=365-(day+sum)+days;
if((year%400==0||(year%4==0&&year%100!=0))&&(month>=3))
a--;
if(a%7==0) printf("%d年%d月%d日是星期一。\n",year,month,day);
if(a%7==1) printf("%d年%d月%d日是星期天。\n",year,month,day);
if(a%7==2) printf("%d年%d月%d日是星期六。\n",year,month,day);
if(a%7==3) printf("%d年%d月%d日是星期五。\n",year,month,day);
if(a%7==4) printf("%d年%d月%d日是星期四。\n",year,month,day);
if(a%7==5) printf("%d年%d月%d日是星期三。\n",year,month,day);
if(a%7==6) printf("%d年%d月%d日是星期二。\n",year,month,day);
label: printf("Do you want to continue?Y/N:");
getchar();
c=getchar();
if(c=='Y'||c=='y')
{
n=0;
goto redo;
}
}

经典万年历老黄历旧版,请问万年历跟老黄历和黄历之间有什么不同?_百度...

提起经典万年历老黄历旧版,大家都知道,有人问请问万年历跟老黄历和黄历之间有什么不同?,另外,还有人想问万年历 老黄历宜是什么,你知道这是怎么回事?其实为什么万年历跟老黄历对不上?下面就一起来看看请问万年历跟老黄历和黄历之间有什么不同?,希望能够帮助到大家!

经典万年历老黄历旧版

1、经典万年历老黄历旧版:请问万年历跟老黄历和黄历之间有什么不同?

黄历就是老黄历,是古时轩辕黄帝创制,主要内容为二十四节气的日期表,每天的吉凶宜忌、生肖运程等。现在的万年历就是记录一定时间范围内(比如年或更多)的具体阳历或阴历的日期的年历,方便有需要的人查询使用。旧版老黄历万年历大全。

2、经典万年历老黄历旧版:万年历 老黄历宜是什么

阳历日期推算阴历日期的方法旧版顺历老黄历万年历。

为什么万年历跟老黄历对不上?

前已述及阴历日期是以月亮的圆缺为计月单位,其以逢朔为初一,以月望为十五(大月为十六日),以月晦为二十九日(大月为三十日)。然而目前记时通常用阳历日期表达,如欲将阳历日期换算成阴历日期可以用以下两种方法:其一是查《新编万年历》,如查年6月8日历几日?翻开万年历6月10日历十一,则逆推6月8日历初九。其二可以利用公式推算阴历日期:最准确的老黄历看日子。

设:公元年数-(或)=4Q+R

则:阴历日期=+10.6(R+1)+年内日期序数-29.5n

(注:式中Q、R、n均为自然数,R<4)

例:年5月7日的阴历日期为:

-=17=4×4+1

故:Q=4,R=1则:5月7日的阴历日期为:经典老黄历。

14×4+10.6(1+1)+(31+28+31+30+7)-29.5n

=.2-29.5n

然后用29.5去除.2得商数6……27.2,6即是n值,余数27即历二十七日。正宗老黄历版本。

3、经典万年历老黄历旧版:为什么万年历跟老黄历对不上?

因为时间跨度不同:老黄历中华万年历旧版。

万年历中的“万年”表示时间跨度大,并非真指一万年,但万年历记录的时间还是比黄历长,最少包含年的公历、农历、干支历、回历、历等多种历法,且还包含黄历相关吉凶宜忌、节假日、提醒等信息。

而黄历则一般以年为时间跨度印刷出版,也能显示示公历、农历和干支历等多套历法,并附加大量与趋吉避凶相关的规则和内容。老黄历通胜日历万年历老版本。

黄历属于万年历的一种。万年历:中国古代中最古老的一部太阳历,记录一定时间范围内(比如年或更多)的具体阳历与阴历的日期的年历,方便有需要的人查询使用。万年只是一种象征,表示时间跨度大。

在现代,黄历的主要内容包括:公历、农历和干支历三套历法,与干支、二十四节气、十二神、星期、方位等等。即古代中国把每的喜忌都记在日历上,作行动指南。

中国传统的历法,基础则是天干地支的排列组合与循环,循环意味着周而复始,同时也意味着再现。正是这种“再现”,让择日避忌有了意义。古人制定历法,确定吉凶之日的根本依据,就是日月星辰。

以上就是与请问万年历跟老黄历和黄历之间有什么不同?相关内容,是关于请问万年历跟老黄历和黄历之间有什么不同?的分享。看完经典万年历老黄历旧版后,希望这对大家有所帮助!

中华万年历旧版本怎么安装不了

中华万年历旧版本怎么安装不了,因为根据资料显示,首先进入,然后点击设置,之后选择版本,最后进行安装即可,因此中华万年历旧版本这么安装不了

展开全文