一周前、三月前、一年前日期确定
来源:互联网 发布:短视频app数据接口 编辑:程序博客网 时间:2024/05/16 02:04
最近有一个小需求:
根据当前日期,求出一周前日期,三个月前日期,一年前日期。
实现如下:
1 调用示例:
//开始时间
COleDateTime startDate;
//结束时间
COleDateTime endDate = COleDateTime::GetCurrentTime();
startDate = CTimeChange::PreDate(endDate, 7, DAY_TYPE);
//最近三个月
startDate = CTimeChange::PreDate(endDate, 3, MONTH_TYPE);
//最近一年
startDate = CTimeChange::PreDate(endDate, 1, YEAR_TYPE);
2 头文件 TimeChange.h:
#pragma once
enum DateType
{
YEAR_TYPE,
MONTH_TYPE,
DAY_TYPE
};
class CTimeChange
{
public:
CTimeChange();
~CTimeChange(void);
//求nSpan前年月日时间
static COleDateTime PreDate(COleDateTime curDate, int nSpan, DateType nType);
//获取查询月天数
static int GetMonthDays(int nYear, int nMonth);
};
3 实现文件TimeChange.cpp:
#include "StdAfx.h"
#include "TimeChange.h"
CTimeChange::CTimeChange()
{
}
CTimeChange::~CTimeChange(void)
{
}
COleDateTime CTimeChange::PreDate(COleDateTime curDate, int nSpan, DateType nType)
{
if (DAY_TYPE == nType)
{
return curDate - COleDateTimeSpan(nSpan, 0, 0, 0);
}
int nYear = curDate.GetYear();
int nMonth = curDate.GetMonth();
int nDay = curDate.GetDay();
if (YEAR_TYPE == nType)
{
nYear -= nSpan;
}
else if (MONTH_TYPE == nType)
{
nMonth -= nSpan;
if (nMonth <= 0)
{
nYear -= 1;
nMonth += 12;
}
}
int nMonthDays = GetMonthDays(nYear, nMonth);
if (nMonthDays < nDay)
{
nDay = nMonthDays;
}
curDate.SetDate(nYear, nMonth, nDay);
return curDate;
}
int CTimeChange::GetMonthDays(int nYear, int nMonth)
{
int nDays = 0;
switch (nMonth)
{
case 2:
//判断闰年
if ((nYear%4==0&&nYear%100!=0)||(nYear%400==0))
{
nDays = 29;
}
else
{
nDays = 28;
}
break;
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
nDays = 31;
break;
case 4:
case 6:
case 9:
case 11:
nDays = 30;
break;
}
return nDays;
}
- 一周前、三月前、一年前日期确定
- Oracle获取一周前,一个月前,一年前的日期
- Oracle获取一周前,一个月前,一年前的日期
- mysql查询昨天 一周前 一月前 一年前的数据
- pyshon实现一天前,一月前,一年前的日期计算
- Java获取当前时间的一天前的时间,一周前,一月前,一年前的时间
- 获取前一周的日期
- java 获取当前日期的前三月,前一天
- mysql的sql语句中直接计算时间 查询昨天 一周前 一月前 一年前的数据的方法
- mysql的sql语句中直接计算时间 查询昨天 一周前 一月前 一年前的数据的方法
- java获取一周前的日期
- js、php获取当前日期、当前日期前一周、当前日期前一个月 日期
- PHP 时间操作(获取一周前、明天的日期)
- Android 阶段性日期的获取【前一天/前一周/前一个月..】
- 应该写在一周前
- 北京站一周前
- oracle 数据库 时间前一天前一年前一个月
- java web 文章,论坛类列表实现时间一天前,一月前,一年前。。。
- windows xp,linux suse下 mysql group_concat()解决方案
- linux快捷操作
- MFC中改变控件的大小和位置 晕
- 杂项16
- 有关枚举类的问题
- 一周前、三月前、一年前日期确定
- PHP 符号大全
- Apache中,同一IP使用多域名对应多个网站的方法
- PHP生成PDF完美支持中文,解决TCPDF乱码
- 高并发大型网站架构设计
- Oracle中Union与Union All的区别
- asp.net中关于<% %>、<%= %>的用法——个人总结
- 请编写实现malloc()内存分配函数功能一样的代码。给出一个函数来复制两个字符串A和B。字符串A的后几个字节和字符串B的前几个字节重叠。
- 使用VMWARE(VMware8)安装Mac OSX 雪豹操作系统