MSDN上的定义:
DateTime 值类型表示值范围在公元(基督纪元)0001 年 1 月 1 日午夜 12:00:00 到公元 (C.E.) 9999 年 12 月 31 日晚上 11:59:59 之间的日期和时间
写了个例子发现1582年1月5号-1月14号在DateTime是有效的。
是把以前的日期都转成现行的历法记录规则了吗?
DateTime 值类型表示值范围在公元(基督纪元)0001 年 1 月 1 日午夜 12:00:00 到公元 (C.E.) 9999 年 12 月 31 日晚上 11:59:59 之间的日期和时间
写了个例子发现1582年1月5号-1月14号在DateTime是有效的。
是把以前的日期都转成现行的历法记录规则了吗?
http://www.cnnet.com/culture/calendar/gregorian.html
如果你要考虑儒略历和格里历的转换,就要考虑你的万年历到底是使用在欧洲还是用在美洲,如果使用在美洲的某些州,就不用作这个转换。
如果用在中国,就更不用转换了。
如果要转换,参考
http://rubycn.ce-lab.net/man/addlib/Date.html
// 哈哈哈,我不晓得中国的历法里面有没有这回事哈,乱盖的。
中国每朝每代都在改历法,所以使用年号——算错了不要紧,换个年号就行了19年7闰只是夏历(夏朝的历法)而已
先秦至隋唐的历法沿革
http://www.gf99.cn/book.asp?bookid=898&id=903
宋元明清的历法沿革
http://www.gf99.cn/book.asp?bookid=898&id=904
到了现代
规定每年冬至时重新观察天象
再用天体物理学去推算农历
这就是紫金山天文台的任务
明明是两种历法,非要混在一块,笨!
仔细看看.Net的帮助,里面有关于各种历法的参数设置。
http://www.codeproject.com/cs/samples/hijrigregorianclass.asp
西方原来有两个历法:Julian 和Gregorian .后来都统一使用Gregorian 历法,但转换的时间不同.英国是在1752所改用的Gregorian ,这一年,1752-9-2号的下一天是1752-9-14号. 可能就是因为避免处理这个问题的原因,SQL SERVER中时间类型支持的时间是从1753年开始的.
My god.丢失的十天、润秒,够新鲜……
同感
另外,不管历法怎么变,生活还是在继续,地球还是在转,历法只是人类对自然规律的模拟,不要本末倒置
September 1752
Su Mo Tu We Th Fr Sa
1 2 14 15 16 // 2号后就是14号啦!
17 18 19 20 21 22 23
24 25 26 27 28 29 301582 二月,罗马教廷要求从 1582 年十月减去十天, 因此1852 年十月四日后面紧跟着就是十五日。 在意大利,波兰,葡萄牙和西班牙都这样处理了。 其他天主教国家也很快跟着这么做了,但是新教国家不愿意修改, 而且希腊等东正教国家直到20世纪初才修改。这个改革在英国及其殖民地(包括现在的 USA)在 1752年执行了。 这样 1752 年九月二日后面跟着 1752 年九月十四日。这就是为什么Unix-like系列的操作系统的cal生成如上面的输出.而1582年10月的输出是:
October 1582
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
http://www.cnpack.org左边最新组件包下载,解压后的Source\Common中,
历法说明规则也可见网站文档中心的“CnCalendar 历法说明”
该库涵盖的范围是公历节气干支生肖星座数九三伏出梅入梅日出日落和部分公历转农历计算。
我想 DateTime 类型是不会去管这个东西的。再说了,中国不存在这个问题。
初次使用.net
天干地支是必然考虑的.还有地方时也会考虑.因为这个东西是给研究风水的用的.不能不谨慎.