CTime 使用总结

原创 2007年10月10日 16:48:00
1.初始化

     m_begintime=CTime(2004,1,1,0,0,0,-1);//参数依次为year,month,day,hour,minite,second
     m_endtime =CTime::GetCurrentTime();//当前时间

2.日期比较

 CTimeSpan span;

span=time1-time2;

得到两时间的间隔.

可以取得span.GetHours().等

3.access数据库查询

使用DateDiff()函数,具体参照access帮助

CString timesql;
 timesql.Format(" Where DateDiff('d',%s,'%s')<=0","日期",m_begintime.Format("%Y-%m-%d"));

 

4读取日期字段(odbc)

    CDBVariant var;
     recset.GetFieldValue(i,var);
    s.Format("%d-%d-%d",(var.m_pdate)->year,(var.m_pdate)->month,
     (var.m_pdate)->day);

5.CTime转换为CString

  例:
   m_begintime.Format("%Y-%m-%d");//2004-10-03

 

6.CString转换为CTime

    //s="2004-10-5"
   int first=s.Find('-');
   int second=s.Find('-',first+1);

   int year=atoi(s.Left(4));
   int month=atoi(s.Mid(first+1,second-first+1));
   int day=atoi(s.Mid(second+1,s.GetLength()-second-1));
   CTime temp(year,month,day,0,0,0);

7.判断CString是否表示的正确日期格式

//判断是否为2004-01-13  ch 可代表其他分隔符
bool IsDate(CString str,char ch)
{
 if(str.IsEmpty()) return false;
 //日期分段
 int first=str.Find(ch);
 int second=str.Find(ch,first+1);

 int year=atoi(str.Left(4));
 int month=atoi(str.Mid(first+1,second-first+1));
 int day=atoi(str.Mid(second+1,str.GetLength()-second-1));
    //判断
 if (year < 2000 || year >= 2010)
 {
  return false;
 }
 else if (month< 1 || month >12)
 {
  return false;
 }
 else if (day< 1 || day > 31)
 {
  return false;
 }
 else if (month == 4 || month == 6 || month == 9 || month == 11)
 {
  if(day > 30)
  {
   return false;
  }
  else
  {
   return true;
  }
 }
 else if (month == '2')
 {
  if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
  {
   if (day>29)
   {
    return false;
   }
   else
   {
    return true;
   }
  }
  else if (day>28)
  {
   return false;
  }
  return true;
 }
 else
 {
  return true;
 }
    }

 

 

用VC编写数据库程序不可避免的会遇到_bstr_t 、CString 、CTime这几个类型之间的转换问题,令人头疼。今早上终于算是解决了CString和CTime的类型转换问题。

//CTime--〉CString
 CTime t;
 t=CTime::GetCurrentTime();
 CString sur;
 sur.Format("%s",t.Format("%Y-%m-%d"));
 MessageBox(sur);


//long --> CString
long a ;
CString b;
b.format("%ld",a);

//double --->CString
double a;
CString b;
b.format("%f",a);

//CString--〉CTime

 CString sur;
 sur="2006-08-09";
 COleDateTime time1;
 time1.ParseDateTime(sur);
 SYSTEMTIME systime;
 VariantTimeToSystemTime(time1, &systime);
 CTime tm(systime);
 m_time=tm;
 UpdateData(false);
 

CString和int,float之间的转换。

1。int <->CString

1) int ->CString

int n = 1;

CString str;

str.Format("%d",n);

2) CString->int

CString str = "1";

int n = atoi(str.GetBuffer(0));

2. char* 与CString

1)char*->CString

char sz[128];

CString str;

str.Format("%s",sz);

2) CString -> char*

CString str;

int nLength = str.GetLength();

char* sz = new char[nLength];

sz = str.GetBuffer(0);

3. float<->CString

1)float->CString

float f = 0.0;

CString str;

str.Format("%f",f);

2) CString->float

CString str = "0.0";

float f = atof(str.GetBuffer(0));


Format函数第一个参数是要转的那个数的类型

 

 

FileTime 和 CTime之间的转换问题

罗索工作室 (http://www.roarsoft.net) 添加者:admin 加入时间:2006-6-30 4:23:00

1. FileTime 转换成 CTime
方法(1)
FILETIME ft;
CTime time(ft);

方法(2)
FILETIME ft;
SYSTEMTIME st;
BOOL bSuccess=::FileTimeToSystemTime(&ft, &st)
if (bSuccess) //转换为SYSTEMTIME成功,下面转换成CTime
CTime time(st);

2. CTime 转换成 FileTime
CTime time(CTime::GetCurrentTime());
SYSTEMTIME st;
time.GetAsSystemTime(st);
FILETIME ft;
::SystemTimeToFileTime(&st, &ft);


 

VB + Winsock + CGI 实现 QQ (OICQ) 在线检测

VB + Winsock + CGI 实现 QQ (OICQ) 在线检测(支持代理服务器)!标准 EXE 例程下载http://microinfo.top263.net/Zip/WskQQExe.zi...
  • playyuer
  • playyuer
  • 2001-07-02 15:18:00
  • 1300

关于节点的代码

// // HelpScene.cpp // xzdd // // Created by on 12-2-24. // Copyright (c) 2012年 __MyCompanyName...
  • epeaktop
  • epeaktop
  • 2016-11-28 07:38:42
  • 468

利用头文件ctime,并且定义一个类,来实现输出当前时间

#include #include    //ctime头文件中声明了和操作时间、日期相关的一些函数、一个结构和一个数据类型 using namespace std; class Clock{...
  • u012495573
  • u012495573
  • 2013-10-23 23:16:50
  • 1358

C++CTime使用方法

函数: ctime   功 能: 把日期和时间转换为字符串   用 法: char *ctime(const time_t *time);   程序例:   #...
  • ys_073
  • ys_073
  • 2012-08-28 10:04:46
  • 13665

MFC CTime 类的详细使用方法

1、日期和时间类简介        CTime类的对象表示的时间是基于格林威治标准时间(GMT)的。CTimeSpan类的对象表示的是时间间隔。        CTime类和CTimeSp...
  • CreatedSign
  • CreatedSign
  • 2014-02-21 16:37:23
  • 2703

C语言中ctime函数功能及用法

函数名: ctime 功  能: 把日期和时间转换为字符串 用  法: char *ctime(const time_t *time); 程序例: #include #include int ma...
  • xuefu2008
  • xuefu2008
  • 2009-10-09 14:58:00
  • 8621

使用CTime类,获取系统时间C/MFC

1.使用CTime类 #include "afx.h" void main() {     CString str; //获取系统时间     CTime tm;     tm=C...
  • fjx812
  • fjx812
  • 2016-11-23 10:10:48
  • 1072

使用CTime类 获取当前时间

实现函数: /////////////////////////////////////////////////////////////// // 功能: 通过CTime类获取当前时间 // 参数:格...
  • wwkaven
  • wwkaven
  • 2014-06-12 21:04:29
  • 2631

时间函数的用法(ctime)

/C++对时间的操作也有许多值得大家注意的地方。最近,在技术群中有很多网友也多次问到过C++语言中对时间的操作、获取和显示等等的问题。下面,在这篇文章中,笔者将主要介绍在C/C++中时间和日期的使用方...
  • u010679895
  • u010679895
  • 2013-08-21 23:58:42
  • 4168

【VS开发】CTime和CTimeSpan使用

此文就用一个程序表示,相信只要是学过C语言的都能看得懂的。 [html] view plain copy  print? // CTimeTest.cpp : Defines t...
  • LG1259156776
  • LG1259156776
  • 2016-05-06 20:41:31
  • 511
收藏助手
不良信息举报
您举报文章:CTime 使用总结
举报原因:
原因补充:

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