double数值与日期型之间的相互转换
2007-02-22 04:28
651 查看
double数值与日期型之间的相互转换
double数值与日期型之间的相互转换
在C#中,数值型与日期型是可以相互转的
一、从double型到date: DateTime.FromOADate(double型)
FromOADate()方法的日期零点值为1899年12月30日0点0分0秒0毫秒,顺逆推为加减一天
如:
DateTime theDate;
theDate = DateTime.FromOADate(0);
// theDate.ToString()等于“1899-12-30 0:00:00”
theDate = DateTime.FromOADate(2);
// theDate.ToString()等于“1900-1-1 0:00:00”
theDate = DateTime.FromOADate(-1);
// theDate.ToString()等于“1899-12-29 0:00:00”
二、从date型到double:
只要知道某一天到日期零点值相差的天数,就可以从date型转换为double型
如:2003年9月30日;
string strDate;
double i=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日相距的天数:
string strCurDate,strOthDate;
double i=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");
string strDay=(j-i).ToString("f1") ;
strDay就是两日间的天数,计算结果为36677.0天
四、同理,求当前日期N天后的日期值也很简单:
求:今天过100天的日期值:
string strCurDate;
double i=37000;
do{
i++;
strCurDate=DateTime.FromOADate(i).ToString("D");
}
while(strCurDate!=DateTime.Now.ToString("D"));
DateTime theDate;
theDate = DateTime.FromOADate(i+100);
theDate就是100天后的日期值
double数值与日期型之间的相互转换
在C#中,数值型与日期型是可以相互转的
一、从double型到date: DateTime.FromOADate(double型)
FromOADate()方法的日期零点值为1899年12月30日0点0分0秒0毫秒,顺逆推为加减一天
如:
DateTime theDate;
theDate = DateTime.FromOADate(0);
// theDate.ToString()等于“1899-12-30 0:00:00”
theDate = DateTime.FromOADate(2);
// theDate.ToString()等于“1900-1-1 0:00:00”
theDate = DateTime.FromOADate(-1);
// theDate.ToString()等于“1899-12-29 0:00:00”
二、从date型到double:
只要知道某一天到日期零点值相差的天数,就可以从date型转换为double型
如:2003年9月30日;
string strDate;
double i=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日相距的天数:
string strCurDate,strOthDate;
double i=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");
string strDay=(j-i).ToString("f1") ;
strDay就是两日间的天数,计算结果为36677.0天
四、同理,求当前日期N天后的日期值也很简单:
求:今天过100天的日期值:
string strCurDate;
double i=37000;
do{
i++;
strCurDate=DateTime.FromOADate(i).ToString("D");
}
while(strCurDate!=DateTime.Now.ToString("D"));
DateTime theDate;
theDate = DateTime.FromOADate(i+100);
theDate就是100天后的日期值
相关文章推荐
- [Java] double与String之间的相互转换方法[转]
- [Java] double与String之间的相互转换方法[转]
- C++中 char*, string, CString, int, double之间相互的转换
- C#:数值与字符串之间相互转换
- 字符串之间相互转换 字符与数值之间的转换
- 数值、字符之间的相互转换
- java Date 日期型和字符串之间的相互转换
- [Java] double与String之间的相互转换方法
- R语言处理日期值的数值和字符串之间的相互转换
- 颜色模型RGB,HSV颜色模型的数值之间相互转换
- Java中double和byte数值之间的转换
- [Java] double与String之间的相互转换方法
- Buffer对象与数值对象之间的相互转换
- 包装类、基本数据类型及String类之间的相互转换
- C/C++中字符串与数值相互转换
- c++中char*\wchar_t*\string\wstring之间的相互转换
- string和数值的相互转换
- java中json包的使用以及字符串,map,list,自定义对象之间的相互转换
- JSON对象和字符串之间的相互转换
- java数值类型与二进制byte数组之间的转换