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;
   }
 

VC++获得当前系统日期和时间问题汇总

Ⅰ.VC中得到当前系统的时间和日期: 得到时间的方法一般都是得到从1900年0点0分到现在的秒数,然后转为年月日时分秒的形式得到当前的时间(时分秒)。主要方法如下: 1)使用CRT函数 ...
  • taifei
  • taifei
  • 2017年02月03日 16:26
  • 1569

孙鑫视频VC++深入详解学习笔记(全)

Lesson1: Windows程序运行原理及程序编写流程 窗口产生过程,句柄原理,消息队列,回调函数,窗口关闭与应用程序退出的工作关系,使用VC++的若干小技巧,stdcall与Lessone...
  • u010984552
  • u010984552
  • 2016年07月05日 16:08
  • 2699

vc时间函数总结

字符串和时间格式相互转化 一使用C标准库 在vc2010中time_t使用64位来保存时间类型 typedef __time64_t time_t; 使用函数time(time_t)time...
  • cardinal_508
  • cardinal_508
  • 2013年03月01日 23:41
  • 3432

VC中关于时间获取及修改的方法

MFC下,常用的获取时间方式有以下几种三种: SYSTEMTIME sysTm, locTm; 1.  GetSystemTime(&sysTm);                         ...
  • zhuifengwy
  • zhuifengwy
  • 2013年11月29日 20:40
  • 1317

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

前几节课着重介绍了机器能够学习的条件并做了详细的推导和解释。机器能够学习必须满足两个条件: 假设空间H的Size M是有限的,即当N足够大的时候,那么对于假设空间中任意一个假设g,Eout≈EinE_...
  • red_stone1
  • red_stone1
  • 2017年05月05日 09:38
  • 2521

VC获取系统时间、程序运行时间(精确到秒,毫秒)的五种方法

1.使用CTime类(获取系统当前时间,精确到秒) CString str; //获取系统时间 CTime tm; tm=CTime::GetCurrentTime();//获取系统日期 str=tm...
  • qq_23992597
  • qq_23992597
  • 2016年06月12日 13:55
  • 3584

给VC程序添加版本号与编译时间

一般来说,发布的正式软件都会包含程序的svn版本号以及软件的编译版本和编译时间等信息,但是这些东西并不是默认就存在的,需要我们进行一些步骤的处理。具体做法有几种,万变不离其宗的是,利用SVN自带的指令...
  • cuglifangzheng
  • cuglifangzheng
  • 2016年02月23日 14:59
  • 1373

针对VC++ 上各种方法获取时间差,CSpanTime等

CTime time = CTime::GetCurrentTime(); int year = time.GetYear();         //返回年 int mouth = tim...
  • bingkehanfeng
  • bingkehanfeng
  • 2013年01月06日 15:43
  • 9098

VC++获取系统当前时间并显示

VC++6.0 获取系统时间 并输入格式化字符串   CTime tm = CTime::GetCurrentTime();    CString strtm= tm.Format("%Y-%m...
  • xin_yu_xin
  • xin_yu_xin
  • 2015年01月24日 01:11
  • 3357

VC获取系统时间、程序运行时间(精确到秒,毫秒)的五种方法

1.使用CTime类(获取系统当前时间,精确到秒) CString str; //获取系统时间 CTime tm; tm=CTime::GetCurrentTime();//获取系统日期 str=tm...
  • qiangzi4646
  • qiangzi4646
  • 2015年02月09日 20:34
  • 668
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VC笔记之时间
举报原因:
原因补充:

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