vc为我们提供了两种日期型的变量。

一种是CTime。他的缺点就是年份只支持到2038年,以后的日期就不支持啦,如果你的项目有20-30年的寿命,你就选择使用SYSTEMTIME.这个时间函数来进行比较还有转换。

一种是SYSTEMTIME。

在比较的时候都不能直接比较。看一下第一种CTime .

CTime timeFrom;
m_dateFrom.GetTime(timeFrom);

CTime timeTo;
m_dateTo.GetTime(timeTo);

CTimeSpan timeSpan=timeTo-timeFrom;
    if(timeSpan.GetDays()<0)
{
        AfxMessageBox(_T("Date illegal"));
return;
}

代码就不解释啦。

转换成日期格式

CString dateFrom=timeFrom.Format(_T("%Y-%m-%d"));

CString dateTo=timeTo.Format(_T("%Y-%m-%d"));

这样你就可以查询两个日期之间的数据啦。

再看一下,SYSTEMTIME的比较,还是转换成日期格式。

一样也是定义两个变量。

SYSTEMTIME timeFrom,timeTo;
m_dateFrom.GetTime(&timeFrom);
m_dateTo.GetTime(&timeTo);

但是这两个时间怎么比较呢,查了好多资料,都是要转换成CTime进行比较。

这样字就没有意义啦。

再在来介绍一种内存比较方法。

两个日期进行内存比较就可以判断出大小来。也不用费事去转换。

int re=memcmp(&timeFrom,&timeTo,sizeof(SYSTEMTIME));
if (re>0)
{
AfxMessageBox(_T("Date illegal"));
return;
}

如果是re>0就说明第一个选择的日期比第二个大。

如果是re<0就说明第一个选择的日期比第二个小。

如果是re=0就说明第一个选择的日期等于第二个。

下来看一下怎么把SYSTEMTIME转换成日期格式xxxx-xx-xx

先来看一下他的几种写法分别出来的效果是什么样子的。

VariantTimeToSystemTime(NULL,&timeFrom);

如果是这样写的话,不管你的日期选择的是哪一天,永远都是一天,是哪一天呢。1899-12-30日。

加个这个看看行不行

COleDateTime oleTime;

VariantTimeToSystemTime(oleTime,&timeFrom);

结果运行结果还是一样,还是那一天。

就没有解决办法了吗?

看一下这样定义行不行。

DATE date;

VariantTimeToSystemTime(date,&timeFrom);

CString dateFrom;
dateFrom.Format(_T("%04u-%02u-%02u"),timeFrom.wYear,timeFrom.wMonth,timeFrom.wDay);

这样就可以完全显示成XXXX-xx-xx的格式啦。

CTime,Systemtime的比较还有转换成日期格式。的更多相关文章

  1. js angular 时间戳转换成日期格式 年月日 yyyy-MM-dd

    昨天写项目,要把时间戳转换成日期格式发给后端 我就去网上找 看到的一些都不是我想要的 索性自己就写了一个如图 下面是angular 模式 $scope.getMyDate = function(str ...

  2. js将时间戳转换成日期格式-陈远波

    var timestamp =1539598555000;//时间戳 //时间戳转换成time格式function timestampToTime(timestamp) { var date = ne ...

  3. js 将long型字符串转换成日期格式

    工作中难免会碰到日期的转换,往往为了方便,后台都是把时间以long型(形如1343818800000)返回给web前端.再有前端自己根据页面需求转换成相应的日期格式.这里将我常用的一个转换时间的函数贴 ...

  4. 让用户输入一个日期字符串,将其转换成日期格式, 格式是(yyyy/MM/dd,yyyyMMdd,yyyy-MM-dd)中的一种, 任何一种转换成功都可以; 如果所有的都无法转换,输出日期格式非法。

    第三种方法 while(true) {             Date d;        System.out.println("正在进行第一次匹配,请稍后~—~");     ...

  5. Java毫秒转换成日期格式

    import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.uti ...

  6. vue项目中将后台返回的创建时间(时间戳格式)转换成日期格式

    第一步:下载安装依赖包 npm install -save moment 第二步: 在main.js文件引入 1. import moment from 'moment' 其中还包含 2. //全局过 ...

  7. javaScript中将时间戳转换成日期格式

    function DateFormt(time, format) { ); var o = { , "d+": testDate.getDate(), "h+" ...

  8. jqgrid 时间戳转换成日期格式

    原文 :http://blog.csdn.net/caoyuancsdn/article/details/52984524 Java script  接收到的时间参数是时间戳*1000 functio ...

  9. [转] String to Date conversion in hive - 在 Hive 中各种字符串转换成日期格式

    [From] http://bigdataprogrammers.com/string-date-conversion-hive/ Please refer below table to conver ...

随机推荐

  1. Android开发笔记:安卓程序截屏方法

    1,基于Android SDK的截屏方法 (1)主要就是利用SDK提供的View.getDrawingCache()方法.网上已经有很多的实例了.首先创建一个android project,然后进行L ...

  2. 开源的Android开发框架-------PowerFramework使用心得(二)图片异步加载ImageTask

    图片异步加载.可以备注图片是否缓存.缓存状态. 1.缓存-SD卡,路径可设置 2.图片压缩 3.可加载本地和网络图片 4.url为本地视频文件可以显示缩略图 5.中文url图片地址FileNotFou ...

  3. 【转载】逃离adapter的地狱-针对多个View type的组合实现方案

    英文原文:JOE'S GREAT ADAPTER HELL ESCAPE 转载地址:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015 ...

  4. Python算术运算符

    Python 运算符 什么是运算符? 本章节主要说明Python的运算符.举个简单的例子 4 +5 = 9 . 例子中,4和5被称为操作数,"+"号为运算符. Python语言支持 ...

  5. Q我音乐

  6. css3之box-sizing

    css盒子模型中包括几种重要的属性,包括margin.border.padding以及content.但浏览器对其盒子模型的解释则有所不痛,启用标准模式还是IE(怪)模式是与当前页面的文档声明相关的. ...

  7. javascript 原生 cookie 处理

    来自网络! function getCookie(name) { var start = document.cookie.indexOf(name + "="); var len ...

  8. js删除选中的复选框中的父辈。

    function scsx(){ var cb=document.getElementsByName('checkbox') if(confirm('删除?')){ for (var i=0;i< ...

  9. 移除IOS下按钮的原生样式

    写WAP页面的时候  一定要加上这组样式,以避免在IOS下面按钮被系统原生样式影响 input,textarea {outline-style:none;-webkit-appearance:none ...

  10. javascript 判断是否是PC还是手机端

    function IsPC() { var userAgentInfo = navigator.userAgent; var Agents = new Array("Android" ...