万年历公式之迷思?

Home Home
引用 | 编辑 andyz
2005-07-14 22:15
楼主
推文 x0
有没有人知道万年历的公式呢?
我是用以下的方法写的

#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int year,y,firthday,month={31,28,31,30,31,30,31,31,30,31,30,31},spaceday,counttochangeline;
cout<<"enter year"<<endl;
cin>>year;
y=year-1;
firthday=(36+y+(y/4)-(y/100)+(y/400))%7+1;
spaceday=firthday-1;

if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) month=29;

for(int cmonth=0;cmonth<12;cmon ..

访客只能看到部份内容,免费 加入会员



献花 x2
引用 | 编辑 夷希微
2005-07-16 08:15
1楼
  
其实您写成这样已经算是很简了(比我以前写的简的太多了) ^^" 表情 表情 表情
尤其是以下这一行 ^_^
firthday=(36+y+(y/4)-(y/100)+(y/400))%7+1;
真是没有想到,这样一行公式就可以计算出该年一月第一天是星期几了 ^^" 表情 表情
坦白说,我们以前都是从 1911/1/1 那一天『开始计算』日子的说(因为那一天刚好是星期天 :P) ^^" 表情 表情

献花 x0
引用 | 编辑 andyz
2005-07-16 10:56
2楼
  
下面是引用夷希微于2005-07-16 08:15发表的 :
其实您写成这样已经算是很简了(比我以前写的简的太多了) ^^" 表情 表情 表情
尤其是以下这一行 ^_^

真是没有想到,这样一行公式就可以计算出该年一月第一天是星期几了 ^^" 表情 表情
坦白说,我们以前都是从 1911/1/1 那一天『开始计算』日子的说(因为那一天刚好是星期天 :P) ^^" 表情 表情

原来如此
难怪我看其他人用JAVA SCRIPT 写的年历都有 if (year>1911)之类的
使的我看不懂这行是用来做啥的 表情

献花 x0
引用 | 编辑 0951020223
2005-07-21 02:19
3楼
  
下面是引用andyz于2005-07-16 10:56发表的 :


原来如此
难怪我看其他人用JAVA SCRIPT 写的年历都有 if (year>1911)之类的
使的我看不懂这行是用来做啥的 表情

你在网路上看到的网页....那ㄍ事属阴阳合历...

它会从1911开始算...也只是要配合农历的部分.....

国历的部分..参考一下我发过的问题.....http://bbs.mychat.to/read.php?tid=132955&keyword=

农历就有点难搂....看过有人用星体运动的程式库来算的....(因为它是算月球运动嘛....)

献花 x0
引用 | 编辑 j14387
2008-05-12 09:57
4楼
  
表情谢谢大大无私的分享

献花 x0
引用 | 编辑 frankie19911
2010-10-20 12:20
5楼
  
大大!!!我是新新手!!可以麻烦给个注解!!??

献花 x0
引用 | 编辑 csr
2011-02-01 21:38
6楼
  
真是受教了
不过还真看不懂
谢谢

献花 x0
引用 | 编辑 王廷睿
2012-01-31 22:23
7楼
  
请问这个
firthday=(36+y+(y/4)-(y/100)+(y/400))%7+1;
是什么意思呢?

献花 x0
引用 | 编辑 Crea*dar
2012-02-20 21:28
8楼
  
有点难懂0.0 请问这是要用哪个程式写

献花 x0