VC笔记之时间

原创 2007年10月08日 18:30:00
 
获得当前日期和时间
 
CTime tm=CTime::GetCurrentTime();
 CString str=tm.Format("%Y-%m-%d");
 
在VC中,我们可以借助CTime时间类,获取系统当前日期,具体使用方法如下:
 
CTime t = CTime::GetCurrentTime(); //获取系统日期
 
int d=t.GetDay(); //获得几号
 
int y=t.GetYear(); //获取年份
 
int m=t.GetMonth(); //获取当前月份
 
int h=t.GetHour(); //获取当前为几时
 
int mm=t.GetMinute(); //获取分钟
 
int s=t.GetSecond(); //获取秒
 
int w=t.GetDayOfWeek(); //获取星期几,注意1为星期天,7为星期六
 
如果想计算两段时间的差值,可以使用CTimeSpan类,具体使用方法如下:
 
CTime t1( 1999, 3, 19, 22, 15, 0 );
 
CTime t = CTime::GetCurrentTime();
 
CTimeSpan span=t-t1; //计算当前系统时间与时间t1的间隔
 
int iDay=span.GetDays(); //获取这段时间间隔共有多少天
 
int iHour=span.GetTotalHours(); //获取总共有多少小时
 
int iMin=span.GetTotalMinutes();//获取总共有多少分钟
 
int iSec=span.GetTotalSeconds();//获取总共有多少秒
 
 
设置计时器 
 
定义TIMER ID
 
#define TIMERID_JISUANFANGSHI 2
 
在适当的地方设置时钟,需要开始其作用的地方;
 
SetTimer(TIMERID_JISUANFANGSHI,200,NULL);
 
在不需要的时候销毁掉时钟
 
 KillTimer(TIMERID_JISUANFANGSHI);
 
消息映射
 
void CJisuan::OnTimer(UINT nIDEvent)
{
   //定时处理的问题信息
}
 
 
 
CString转换成COleDateTime
strCString="2003-10-27 6:24:37"; //
COleVariant vtime(strCString);
vtime.ChangeType(VT_DATE);
COleDateTime time4=vtime;
 
 
 
COleDataTime转换成CTime
COleDateTime time1(1977,4,16,2,2,2); // SYSTEMTIME systime;
VariantTimeToSystemTime(time1, &systime);
CTime tm(systime);
 
 
 
 
time_t time2=tm.GetTime(); //CTime--->time_t
COleDateTime time3(time2); //time_t--->COleDateTime
 
 
 
COleDateTime double
COleDateTime   Time(2000,3,17,14,0,0);  
 double   a=(double)Time;  
 return;  
 
 
直接转换就是了  
          COleDateTime   dt;  
          ...  
          double   x=(double)dt.m_dt;  
   
 
 The   DATE   type   is   implemented   using   an   8-byte   floating-point   number.   Days   are   represented   by   whole   number   increments   starting   with   30   December   1899,   midnight   as   time   zero.   Hour   values   are   expressed   as   the   absolute   value   of   the   fractional   part   of   the   number.
 
       int year = tmm.GetYear();
       int month = tmm.GetMonth();
       int day = tmm.GetDay();
       int hour = tmm.GetHour();
       int minute=tmm.GetMinute();
       int second = tmm.GetSecond();
 
       CString m_lGetProDay;
       m_lGetProDay.Format("%04u-%02u-%02u %02u:%02u:%02u/n",year,month,day,hour,minute,second);
       COleVariant vsettime(m_lGetProDay);
       vsettime.ChangeType(VT_DATE);
       COleDateTime dtime=vsettime;
       return dtime;
 
 
日期相隔计算和判断
// m_tBeginDate1, m_tBeginDate2COleDataTime
//一个为起始时间,一个为终止时间
//COleDataTime--->CTime
 
SYSTEMTIME systime;
    VariantTimeToSystemTime(m_tBeginDate1, &systime);
    CTime tm(systime);
 
     SYSTEMTIME systime2;
        VariantTimeToSystemTime(m_tBeginDate2,&systime2);
        CTime tm1(systime2);
 
       if(tm > tm1)  
       {
              MessageBox("起始时间不能大于终止时间!","提示",MB_OK);
              return;
       }
//***********************************************************
// CTimeSpan的用法
/* MSDN介绍如下
CTimeSpan Operators
Operators
Assigns new time-span values.
Adds CTimeSpan objects.
Subtracts CTimeSpan objects.
Adds a CTimeSpan object to this CTimeSpan.
Subtracts a CTimeSpan object from this CTimeSpan.
Compares two relative time values.
 
Archive/Dump
Outputs a CTimeSpan object to CArchive or CDumpContext.
Inputs a CTimeSpan object from CArchive
 
CTimeSpan Member Functions
Construction
Constructs CTimeSpan objects in various ways.
 
Extraction
Returns the number of complete days in this CTimeSpan.
Returns the number of hours in the current day (–23 through 23).
Returns the total number of complete hours in this CTimeSpan.
Returns the number of minutes in the current hour (–59 through 59).
Returns the total number of complete minutes in this CTimeSpan.
Returns the number of seconds in the current minute (–59 through 59).
Returns the total number of complete seconds in this CTimeSpan.
 
Conversion
Converts a CTimeSpan into a formatted string.
时间的间隔处理
*/
       CTimeSpan m_timespan = tm1 - tm;
    //int iss=m_timespan.GetDays();
       if(m_timespan.GetDays() >30)
   {
        MessageBox("查询日期不能大于1个月","提示",MB_OK);
        return;
   }
 

CTime::GetCurrentTime();获取当前时间

CTime tRecordTime = CTime::GetCurrentTime(); CString strRecordTime = tRecordTime.Format("%Y-%m-%d %H...
  • haiheng
  • haiheng
  • 2004-10-26 09:50:00
  • 12777

嵌入式Linux驱动笔记(十四)------详解clock时钟(CCF)框架及clk_get函数

你好!这里是风筝的博客,欢迎和我一起交流。我在找资料的时候,发现网上大部分文章都是说: 在s3c244x_init_clocks函数里:void __init s3c244x_init_clocks...
  • Guet_Kite
  • Guet_Kite
  • 2017-09-17 19:40:44
  • 605

台湾大学林轩田机器学习基石课程学习笔记7 -- The VC Dimension

我的CSDN博客地址:红色石头的专栏 我的知乎主页:红色石头 我的微博:RedstoneWill的微博 我的GitHub:RedstoneWill的GitHub 我的微信...
  • red_stone1
  • red_stone1
  • 2017-05-05 09:38:05
  • 3724

斯坦福ML公开课笔记10——VC维、模型选择、特征选择

本篇是ML公开课的第10个视频,上接第9个视频,都是讲学习理论的内容。本篇的主要内容则是VC维、模型选择(Model Selection)。其中VC维是上篇笔记中模型集合无限大时的扩展分析;模型选择又...
  • xinzhangyanxiang
  • xinzhangyanxiang
  • 2014-01-17 14:51:14
  • 7726

一个时钟程序'

# -*- coding: cp936 -*-一个时钟程序def createAlarm(master):     创建时间选择组件,包括小时、分钟、秒    系统默认的时间设置为当前的事件    i...
  • jcodeer
  • jcodeer
  • 2007-10-15 23:32:00
  • 3694

一个实时显示系统时钟的android应用

这是一个实时显示时钟的应用。 主要点:①如何用方法将数字的每一位拆开;②思考哪些部分是需要循环执行的;③使用了计时器Timer类和Handler类。...
  • niujingaojie
  • niujingaojie
  • 2015-09-27 16:41:54
  • 1732

VC++ 时间控制

  • 2010年01月21日 21:44
  • 444B
  • 下载

VC下的时间有多钟格式

VC下的时间有多钟格式,分别罗列如下         1。标准c语言时间   time_t类型,它是以秒为单位的时间,起始时间是1970-1-1   0:0:0(GTM)     如果如果是以time...
  • limi0066
  • limi0066
  • 2007-08-25 16:12:00
  • 8539

完整的日期时钟代码

  • zgqtxwd
  • zgqtxwd
  • 2008-05-01 06:18:00
  • 168

时钟

(前记:网上无意间翻到了这一系列文章,真心觉得不错,对于Unity初学者应该是非常有助益的(譬如我:)),顺手翻译了第一篇,也算是一次小小的整理和复习,虽然原文中的有些描述略显琐碎,但就总体而言也可谓...
  • tkokof1
  • tkokof1
  • 2013-07-31 23:11:45
  • 1212
收藏助手
不良信息举报
您举报文章:VC笔记之时间
举报原因:
原因补充:

(最多只允许输入30个字)