- 积分
- 56793
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2011-6-21
- 最后登录
- 1970-1-1
|
发表于 2013-7-16 11:07:37
|
显示全部楼层
MeteoInfo 发表于 2013-7-16 10:26
看到了,我得调试一下
对该问题进行了修正,重新下载、安装MeteoInfo 1.0.9即可。
这个问题是数据和C#中的DateTime类ToOADate方法共同造成的。MeteoInfo里会将数据中的时间转为double数据类型来存储,用的是DateTime类的ToOADate方法(OLE自动化时间),这个方法有最小时间的限制,是0100 年 1 月 1 日午夜,如果时间早于此则会出错。这个NC数据里解出来的日期的年份是0001,当然是早于最小时间的,所以会出错。我觉得0001年应该不是数据的真实年份,这个应该是多年月平均数据,所以用了一个虚假的年。
解决方法我想到两个。一种是当年小于100时人为加个2000年。另一种是舍弃ToOADate方法,用DateTime.Tick(long类型)来将DateTime转为double。第二种方法需要修改类库里的很多代码,所以暂时用了第一种方法,以后有需要可以考虑用第二种方法来解决。 |
|