VC中获得当前日期和时间

获得当前日期和时间

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)

{}

 

 

 

VC++中其实还是通过调用它自带的CTime类来完成的获取当前系统时间的,我们做一个小程序来了解这个过程吧!对话框里只有两个显示框和两个按钮,点下按钮显示当前时间。就这么一个小程序。

1)建立应用程序外壳

    创建一个新的AppWizard项目,命名为shiyan,选择Dialog based;其他都选用默认属性,单击Finish完成生成应用程序的步骤。进入对话框界面以后,按下图所示布置显示框和功能按钮。

 

2)设置参数 

    其中上面的显示文本框设为CString型,命名为m_show,ID号为IDC_show

下面的显示文本框设为CString型,命名为m_show1,ID号为IDC_show1

3)编译程序

start键程序:

void CDate1Dlg::Onstart()
{
 //count=0;
 SetTimer(1,1000,NULL);
 // TODO: Add your control notification handler code here
 
}

stop键程序:

void CDate1Dlg::Onstop()
{
 KillTimer(1);
 // TODO: Add your control notification handler code here
 
}

4增加计时器控件

   View -> ClassWizard -> MessageMaps -> CUse progressDlg,加入WM_TIMER函数,编辑程序:

void CDate1Dlg::OnTimer(UINT nIDEvent)
{
  if(nIDEvent==1)
 {
 // count++;
 UpdateData(1);
 CTime mtime=CTime::GetCurrentTime();//获取当前时间
 char i;
 CString w;
 i=char (mtime.GetDayOfWeek());

//获取当前时间的天数是这个星期的第几天,这里要注意了,系统上默认的一个星期的第一天是星期日,最后一天是周六,大家千万不要搞错了。我也是试了才知道的。
 switch(i)//将数字状换成字符就不会出现星期7这种情况了
 {
        case 2:
      {w="一";break;}
        case 3:
      {w="二";break;}
        case 4:
      {w="三";break;}
        case 5:
      {w="四";break;}
        case 6:
      {w="五";break;}
        case 7:
      {w="六";break;}
        case 1:
      {w="日";break;}
 }
 int a,b,c,d,e,f;
 a=int(mtime.GetSecond())/10;//获取当前时间的秒数
    b=int(mtime.GetSecond())%10;
 c=int(mtime.GetMinute())/10;//获取当前时间的分数
 d=int(mtime.GetMinute())%10;
 e=int(mtime.GetHour())/10;//获取当前时间的小时数
 f=int(mtime.GetHour())%10;
    m_show.Format("今天是%d年%d月%d日 星期%s  ",mtime.GetYear(),mtime.GetMonth(),mtime.GetDay(),w);
    m_show1.Format("现在时间是 %d%d:%d%d:%d%d",e,f,c,d,a,b);
 }

 
    UpdateData(0);

 // TODO: Add your message handler code here and/or call default
 
 CDialog::OnTimer(nIDEvent);
}

之后编译运行一下就行了,效果见下图:

 

 编写了另外一个简单的获取时间方式:

  1. void CMy1Dlg::OnTimer(UINT nIDEvent)   
  2. {  
  3.     // TODO: Add your message handler code here and/or call default  
  4.     if (nIDEvent==1)  
  5.     {  
  6.         CTime mtime=CTime::GetCurrentTime();  
  7.         m_strtime=mtime.Format("今天是%Y年%m月%d日 %X"); //m_strtime是和编辑框关联的string类型变量  
  8.         UpdateData(FALSE);  
  9.           
  10.     }  
  11.     CDialog::OnTimer(nIDEvent);  
  12. }  
  13.   
  14. void CMy1Dlg::OnButton1()   
  15. {  
  16.     // TODO: Add your control notification handler code here  
  17.     SetTimer(1,1000,NULL);  
  18. }  
  19.   
  20. void CMy1Dlg::OnButton2()   
  21. {  
  22.     // TODO: Add your control notification handler code here  
  23.     KillTimer(1);  
  24. }  
void CMy1Dlg::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	if (nIDEvent==1)
	{
		CTime mtime=CTime::GetCurrentTime();
		m_strtime=mtime.Format("今天是%Y年%m月%d日 %X"); //m_strtime是和编辑框关联的string类型变量
		UpdateData(FALSE);
		
	}
	CDialog::OnTimer(nIDEvent);
}

void CMy1Dlg::OnButton1() 
{
	// TODO: Add your control notification handler code here
	SetTimer(1,1000,NULL);
}

void CMy1Dlg::OnButton2() 
{
	// TODO: Add your control notification handler code here
	KillTimer(1);
}

 

http://blog.csdn.net/sunxc123/article/details/7686659

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VC6,可以使用以下方法来获取当前时间: 1. 使用time_t变量和time(time_t*)方法。这种方法可以获取当前时间的秒数。可以通过将time_t变量传递给time函数来获取当前时间的秒数。 2. 使用CTime类。可以使用CTime::GetCurrentTime()方法来获取当前时间。这个方法返回一个CTime对象,其包含了当前日期时间信息。 3. 使用COleDateTime类。可以使用COleDateTime::GetCurrentTime()方法来获取当前时间。这个方法返回一个COleDateTime对象,其包含了当前日期时间信息。 请注意,以上方法适用于VC6,可能在其他版本的VC有所不同。 #### 引用[.reference_title] - *1* *2* [笔记1:VC获取系统时间的方法](https://blog.csdn.net/wu_zhiyuan/article/details/109617013)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [VC获得当前日期时间](https://blog.csdn.net/phenixyf/article/details/41555743)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值