我需要把时间值转换成浮点数 但是上述值转换失败,只有设置了月 日,才能得到具体的数值.
请问为什么??

解决方案 »

  1.   

    用GetDay(),GetYear....等分别取出吧,再把int转换float
      

  2.   

    Parameter    Bounds 
    nYear        100  9999 
    nMonth       1 – 12 
    nDay         1 – 31 如果这三个值不在范围内,那么ColeDateTime的状态就是异常的.取的值就不对.见MSDN COleDateTime::SetDateTime
      

  3.   

    >>用GetDay(),GetYear....等分别取出吧,再把int转换float如果构造函数里的值本身没有设对,取出来的年月日值肯定是-1.得不到想要的结果.
      

  4.   

    COleDateTime t0(2000,1,1,0,0,0);
    COleDateTime t1(2000,1,1,0,0,1);double x0=(double)t1-(double)t0;
    x0应该为1秒对应的小数值,实际上根本得不到
      

  5.   

    不是得不到,而是你用的方法不对.不能直接把它转换成数字来表达的,应该用COleDateTimeSpan,我写了一段代码,可以取出间隔时间:  COleDateTime oletime1(2000, 1, 1, 0, 0, 0), oletime2(2000, 1, 1, 0, 0, 1);
      
      COleDateTimeSpan olets = oletime2 - oletime1;
      
      CString str;
      str.Format("%s and %d seconds",
        (LPCTSTR)olets.Format("%H:%M:%S"), olets.GetSeconds());  printf("%s\n", oletime1.Format("%H:%M:%S %A, %B %d, %Y"));
      printf("%s\n", oletime2.Format("%H:%M:%S %A, %B %d, %Y"));  
      printf("%s", (LPCTSTR)str);
      

  6.   

    通过构造两个对应的COleDateTime对象值后,
    得到double  x0=147.82804398148.共14位数字,但是小数位不固定,因此不知道保留多少小数位才可以???