代码改变世界

Execl DataTime Format Number

2014-12-26 14:36  旦旦  阅读(340)  评论(0编辑  收藏  举报
Excel 中日期类型所保存的值是数值型。只是设置了为日期格式,通过公式转换从而得出我们平时常用的日期内容。也很好理解这公式所要说明的意思。数值是个浮点型可以分成2部分看。
整数部分:年月日(日期)
小数部分:时分秒(时间)


思路
整数部分:
(已知年-1900)*365+已知年/4的整数部分-1900/4+已知月日在当前年产生的天数。
(为什么是1900这个我也真的不知道,不过好像有不少计算机上的日期都这个为超点,SQL Server的日期就是其中一个。都是微软的产品,可能是通用的标准也可能是软件定制出来后大家一起迫使用的习惯)

时间部分:
时:实际数值/24
分:实际数值/24/60
秒:实际数值/24/60/60
毫秒:实际数据/10位小数位 
然后把这几个数值加起来就是小数部分了。


例子:2014.12.17 12:31:21.135
 
算年:
共多少年: 2014-1900=114
共多少個閏年: 114/4=28
年份共多少天:114*365+28=41638
 
算月:
共多少月:11
共多少31天的月:7
月共多少天:11*30+7-2=335
 
日期共多少天:41638+335+17=41990


時:12/24=0.5
分:31/24/60=0.021
秒:21/24/60/60= 0.0007708333
毫秒:0.135/10=0.0000000000135
時間共多少:0.5+0.021+0.0007708333+0.0000000000135=0.5217708333135

值:41990.5217708333135
 
保存最原始数值:
好处:让不同区域可通过格式化后适配成对应区域所显示的内容。
坏处:如果需要格式才能明确显示内容,会导致不能够直观知道值所代表的意义。