wxDateTime如何使用

本文介绍了在wxWidgets中如何实现显示程序的运行时间和当前时间。作者最初尝试通过递增计数并转换为小时、分钟和秒的方式计算运行时间,但最终采用wxTimeSpan类的Subtract方法来更简洁地实现这一功能。

   最近在开发一个程序,需要显示当前时间和运行时间。

    比如当前时间:10:00:08 运行时间 00:01:18

    这里要定义两个类成员wxDateTime,一个保存

初始时间,一个保存当前时间。不过本人比较有强迫症

不想定义那么多变量。

 

所以刚开始是这么表示运行时间的

void OnTimer(wxTimerEvent& event)
{
    static long total= 0 ; 
    total++;
    int h = total/3600;
    int m = (total/60)%60;   
    int s = total%60; 
    wxString str;
    str.printf(wxT("%02%02d%02d"),h,m,s);
    //说来也怪,不定义 h m s临时变量一直搞不成功
    //可能是total是long类型的原因,搞了好久没搞定嗨 
  
    wxDateTime now = wxDateTime::Now();     
    //刚开始没用wxDateTime::Now()来构造,一直崩溃 
    wxString strNow = now.FormatISOTime(); 
    //手写的代码,可能有小错
    //因为最后我没这样写,写错了好多次
}

后来就是定义了两个变量的版本的

void OnTimer( wxTimerEvent& event )
{
 nowTime = wxDateTime::Now();
 wxString now =nowTime.FormatISOTime();
 wxTimeSpan diff = nowTime.Subtract(beginTime);
 wxString now =diff.Format();
 
//TimeSpan的Format是HH::MM:SS格式的 
 
}

转载于:https://my.oschina.net/u/264056/blog/384941

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值