废话不多说,进入正题。
首先介绍2个函数time localtime
一、函数time简介
time_t time(time_t *timer);
【功 能】获取当前系统时间
【参 数】*timer用来指向存储返回值的变量,若为NULL,不存储。
【返回值】1970年1月1日0:0:0到当前时间的秒数
二、函数localtime简介
struct tm *localtime(const time_t *timer);
【功 能】将秒数转换成当前日期(ps:日期用结构体tm表示)
【返回值】对应日期的tm结构体
下面给出一个通过当前日期获取本月初、月末日期的例子【思路】1、获取当期日期(例如目前为2013-6-4)
2、获取1970-1-1到当前时间的秒数(long_time)
3、计算1970-1-1至月初的秒数(long_time - 天数[4]*24*60*60)
4、计算1970-1-1至月末的秒数(当前秒数+1天的秒数 → 将秒数转换为日期→判断此日期是否为1→求出至月末的秒数→转换为日期)
time_t firsttime; //至本月初秒数
time_t lasttime; //至本月末秒数
time_t long_time;
int daynum; //日期
tm* first_Time; //本月初时间
tm* last_Time; //本月末时间
SYSTEMTIME sys; //当前时间(有多种方法可以获取当前时间,看实际需要吧)
GetLocalTime(&sys);
daynum = sys.wDay;
time(&long_time);
firsttime = long_time - (daynum-1)*24*60*60;
first_Time = localtime(&firsttime);
lasttime = long_time + 24*60*60;
last_Time = localtime(&lasttime);
while(1 != last_Time->tm_mday)
{
lasttime = lasttime + 24*60*60;
last_Time = localtime(&lasttime);
}
lasttime = lasttime - 24*60*60;
last_Time = localtime(&lasttime);
如果大家有更好的思路,欢迎讨论。。。