首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

在C中怎样表示一个十八世纪的时间?解决办法

2012-04-28 
在C中怎样表示一个十八世纪的时间?C中有没有标准的结构来表示一个十八世纪的时间?因为我想计算一个时间差,

在C中怎样表示一个十八世纪的时间?
C中有没有标准的结构来表示一个十八世纪的时间?因为我想计算一个时间差,起始时间是18世纪的某一天,结束时间是当前的时间,怎么去计算呢?我想使结果精确到秒
ps:我试过c中已有的struct tm结构,只能表示自1970,.1.1 00:00:00之后的时间

[解决办法]
1、时间表示没有古老不古老,只是显示方式问题 例如:1788年12月12日 12点12分12秒
2、结构体表示时间可以自定义 内容上面已经写了 年月日等
3、时间差,不是有万年历? 需要精准的?如果不需要只要按照每年365天算就可以了
[解决办法]

探讨

自己写个算法先计算差距日期然后再算秒就OK了呗,先判断两个时间差之间闰年个数然后再计算日期差。为啥写个算法还非得让它有相差十几天的误差呢,用点心不成么。

[解决办法]
The COleDateTime class handles dates from 1 January 100 – 31 December 9999.


[解决办法]
做算法计算公历现在已经是完全按照格里历的纪念方式算了,谁告诉你1582年之前需要转化成儒略历了,这分明是两个不同的记载日期的方式,好比现在通俗所讲的公历和中国古代的阴历一样的区别,儒略历没有发明之前的日期你还按中国阴历算不成,另外你所讲到的两种日历的转换方式也太狭隘,其实原没有那么简单。
格里历日期与儒略历日期的差距1582年: 
格里历10月15日,合儒略历10月5日,或之后的日期:格里历日期减10日等于儒略历日期。
1583年——1699年:格里历日期减10日等于儒略历日期。
1700年(格里历没有闰日,但儒略历有): 
格里历2月28日,合儒略历2月18日,或之前的日期:格里历日期减10日等于儒略历日期。
格里历3月1日,合儒略历2月19日,或之后的日期:格里历日期减11日等于儒略历日期。
1701年——1799年:格里历日期减11日等于儒略历日期。
1800年(格里历没有闰日,但儒略历有): 
格里历2月28日,合儒略历2月17日,或之前的日期:格里历日期减11日等于儒略历日期。
格里历3月1日,合儒略历2月18日,或之后的日期:格里历日期减12日等于儒略历日期。
1801年——1899年:格里历日期减12日等于儒略历日期。
1900年(格里历没有闰日,但儒略历有): 
格里历2月28日,合儒略历2月16日,或之前的日期:格里历日期减12日等于儒略历日期。
格里历3月1日,合儒略历2月17日,或之后的日期:格里历日期减13日等于儒略历日期。
1901年——2099年:格里历日期减13日等于儒略历日期。
2100年(格里历没有闰日,但儒略历有): 
格里历2月28日,合儒略历2月15日,或之前的日期:格里历日期减13日等于儒略历日期。
格里历3月1日,合儒略历2月16日,或之后的日期:格里历日期减14日等于儒略历日期。
不过这些东西MS跟算公历时间一毛钱关系都没有吧,现在的记历方式就是格里历,它什么时候发行的你别管,在他之前人们怎么记历的你别管,你需要做的只是按照格里历的记历方式,做你的万年历就是了。
[解决办法]
boost 里面有个 date time 的功能,http://www.boost.org/doc/libs/1_49_0/doc/html/date_time.html,计算时间点和时间间隔都很方便。而且你还可以指定 gregorian 或 julian 历法,貌似也可以相互之间转换,并且没有 1970++ 的限制,楼主可以看一下。

热点排行