double数值与日期型之间的相互转换
double数值与日期型之间的相互转换
在C#中,数值型与日期型是可以相互转的
一、从double型到date:DateTime.FromOADate(double型)
FromOADate()方法的日期零点值为1899年12月30日0点0分0秒0毫秒,顺逆推为加减一天
如:
DateTimetheDate;
theDate=DateTime.FromOADate(0);
//theDate.ToString()等于“1899-12-300:00:00”
theDate=DateTime.FromOADate(2);
//theDate.ToString()等于“1900-1-10:00:00”
theDate=DateTime.FromOADate(-1);
//theDate.ToString()等于“1899-12-290:00:00”
二、从date型到double:
只要知道某一天到日期零点值相差的天数,就可以从date型转换为double型
如:2003年9月30日;
stringstrDate;
doublei=0;
do{
i++;
strDate=DateTime.FromOADate(i).ToString("d");
}
while(strDate!="2003-9-30");//这个条件和系统的语言有关,这里是XP中文版系统的设置,其它语言的系统应改为相应日期格式。
运算结果的i值就是2003年9月30日的double值
三、用FromOADate()方法求两个日期之间相差天数:
求任意两个日期之间的天数差,用FromOADate()方法会变得简单而精确,不用考虑闰年和大小月问题,并且可以精确到小数点后任意位。下例精确到小数点后一位:
求当前日期到2104年3月1日相距的天数:
stringstrCurDate,strOthDate;
doublei=0,j=0;//可以不从0开始,以减少循环次数
do{
i++;
strCurDate=DateTime.FromOADate(i).ToString("d");
}
while(strCurDate!=DateTime.Now.ToString("d"));
j=i;//可以不要此句,这是为减少循环次数
do{
j++;
strOthDate=DateTime.FromOADate(j).ToString("d");
}
while(strOthDate!="2104-3-1");
stringstrDay=(j-i).ToString("f1");
strDay就是两日间的天数,计算结果为36677.0天
四、同理,求当前日期N天后的日期值也很简单:
求:今天过100天的日期值:
stringstrCurDate;
doublei=37000;
do{
i++;
strCurDate=DateTime.FromOADate(i).ToString("D");
}
while(strCurDate!=DateTime.Now.ToString("D"));
DateTimetheDate;
theDate=DateTime.FromOADate(i+100);
theDate就是100天后的日期值
分享到:
相关推荐
在C语言中没有直接将日期转换为double型的函数,但是在将日期类型保存到文件时往往需要日期的转换。C语言日期型与double型互相转换。在VC6.0和VC2010下编译通过。C/C++时间日期与doub型相互转换。
一些初学JAVA的朋友可能会遇到JAVA的数据类型之间转换的苦恼,例如,整数和float,double型之间的转换,整数和String类型之间的转换,以及处理、显示时间方面的问下面笔者就开发中的一些体会介绍给大家。 我们知道,...
int、char、double与byte相互转换
2.首先来两个int类型的数据(或double型): 4.将int型(double型)转换为QByteArray型: 5.QString与QByteArray之
本资源整理了几种c++中double与string相互转换方式,包含完整的vs2010工程。可直接使用。
本篇文章是对C++中浮点数(float、double)类型数据比较与转换进行了详细的分析介绍,需要的朋友参考下
string转换double string转换double string转换double string转换double
将cell类型的数据转换为double类型的函数
8位16进制与浮点double的转换工具
可将数据从字符型转换为数值,十分方便,包括负数小数如char 1.3型可转换为double型1.3在数据处理中非常好用
Java bytes数组与基本类型的相互转换 Int -> Bytes int64ToByte8 int48ToByte6 int40ToByte5 int32ToByte4 int24ToByte3 int16ToByte2 int8ToByte Bytes -> Int bytesToInt64 bytesToInt48 bytesToInt40 bytesTo...
BigDecimal向Double转换
double转换成string型.pdf
c++ 中 数字转换为大写 在vs中开发 输入的为double型
输入一科学计数法形式字符串,如1234.5e-6 ;通过double atof()将其转换成double形的数据
//将double类型转为_int64,防止精度1丢失 //将double类型转为_int64,防止精度1丢失
在整数之间进行类型转换时,数值不发生改变,而,特将整数类型别是比较大的整数类型转换成小数类型时,由于存储方式不同,有可能存在数据精度的损失。 强制类型转换,也称显式类型转换,是指必须书写代码才能完成的...
学习DELPHI的方法,以一个DOUBLE值来表示时间,这样很容易算出两者的时间差等信息。同时具有一个将时间转为字符串的函数,方便调用。 同时包含一个CHDateTime类,便于使用。 C++中的std::string功能强大,一般在可以...
您可能感兴趣的文章:sql语句中如何将datetime格式的日期转换为yy-mm-dd格式将WMI中的DateTime类型转换成VBS时间的函数代码LINQ字符串向datetime 转换时失败的处理方法Sql中将datetime转换成字符串的
使用此程序可以直接将4字节的16进制数据转换成float或者double型数据,上传的是整个解决方案,下载后使用vs2010打开即可直接使用