您的位置:首页 > 其它

自用时间生成器

2014-04-16 13:53 239 查看
main.cpp

#include "otime.h"

#include<iostream>

using namespace std;

int main()
{
OrderDateTime t;

char dtstamp[24];
char datetime[20];
char date[11];
char time[9];
//while (1)
{
t.getDTStamp(dtstamp);
cout << dtstamp << endl;

t.getDateTime(datetime);
cout << datetime << endl;

t.getDate(date);
cout << date << endl;

t.getTime(time);
cout << time << endl;

}

int i;
cin >>i;
}


otime.h

//order time
#pragma once

#include <ctime>

class OrderDateTime{
public:
void getDTStamp(char dtstamp[24]);
void getDateTime(char datetime[20]);
void getDate(char date[11]);
void getTime(char time[9]);

private:
//时间戳类型(格式 yyyy-MM-dd hh:nn:ss.xxx)
char dtstamp[24];
//日期和时间类型(格式 yyyy-MM-dd hh:nn:ss)
char datetime[20];
//日期类型(格式 yyyy-MM-dd)
char date[11];
//时间类型(格式 hh:nn:ss)
char time[9];

char tm_sec[3];
char tm_min[3];
char tm_hour[3];
char tm_mday[3];
char tm_mon[3];
char tm_year[5];

void updateOrderDateTime();
};

void OrderDateTime::updateOrderDateTime()
{
time_t rawtime;
struct tm * timeinfo;
std::time(&rawtime);
timeinfo = localtime(&rawtime);

//int	tm_sec			seconds after the minute		0 - 61
tm_sec[0] = timeinfo->tm_sec/10 + '0';
tm_sec[1] = timeinfo->tm_sec%10 + '0';
tm_sec[2] = '\0';

//int 	tm_min			minutes after the hour			0 - 59
tm_min[0] = timeinfo->tm_min / 10 + '0';
tm_min[1] = timeinfo->tm_min % 10 + '0';
tm_min[2] = '\0';

//int 	tm_hour			hours since midnight			0 - 23
tm_hour[0] = timeinfo->tm_hour / 10 + '0';
tm_hour[1] = timeinfo->tm_hour % 10 + '0';
tm_hour[2] = '\0';

//int 	tm_mday			day of the month				1 - 31
tm_mday[0] = timeinfo->tm_mday / 10 + '0';
tm_mday[1] = timeinfo->tm_mday % 10 + '0';
tm_mday[2] = '\0';

//int 	tm_mon			months since January			0 - 11
++timeinfo->tm_mon;
tm_mon[0] = timeinfo->tm_mon / 10 + '0';
tm_mon[1] = timeinfo->tm_mon % 10 + '0';
tm_mon[2] = '\0';

//int	tm_year			years since 1900
timeinfo->tm_year+=1900;
tm_year[0] = timeinfo->tm_year / 1000 + '0';
tm_year[1] = (timeinfo->tm_year / 100 - (timeinfo->tm_year / 1000)*10) + '0';
tm_year[2] = (timeinfo->tm_year / 10 - (timeinfo->tm_year/100)*10) + '0';
tm_year[3] = timeinfo->tm_year % 10 + '0';
tm_year[4] = '\0';

}

//时间戳类型(格式 yyyy-MM-dd hh:nn:ss.xxx)
void OrderDateTime::getDTStamp(char dtstamp[24])
{
updateOrderDateTime();

dtstamp[0] = tm_year[0];
dtstamp[1] = tm_year[1];
dtstamp[2] = tm_year[2];
dtstamp[3] = tm_year[3];
dtstamp[4] = '-';
dtstamp[5] = tm_mon[0];
dtstamp[6] = tm_mon[1];
dtstamp[7] = '-';
dtstamp[8] = tm_mday[0];
dtstamp[9] = tm_mday[1];
dtstamp[10] = ' ';
dtstamp[11] = tm_hour[0];
dtstamp[12] = tm_hour[1];
dtstamp[13] = ':';
dtstamp[14] = tm_min[0];
dtstamp[15] = tm_min[1];
dtstamp[16] = ':';
dtstamp[17] = tm_sec[0];
dtstamp[18] = tm_sec[1];
dtstamp[19] = '.';
dtstamp[20] = '0';
dtstamp[21] = '0';
dtstamp[22] = '0';
dtstamp[23] = '\0';

}

//日期和时间类型(格式 yyyy-MM-dd hh:nn:ss)
void OrderDateTime::getDateTime(char datetime[20])
{
updateOrderDateTime();

datetime[0] = tm_year[0];
datetime[1] = tm_year[1];
datetime[2] = tm_year[2];
datetime[3] = tm_year[3];
datetime[4] = '-';
datetime[5] = tm_mon[0];
datetime[6] = tm_mon[1];
datetime[7] = '-';
datetime[8] = tm_mday[0];
datetime[9] = tm_mday[1];
datetime[10] = ' ';
datetime[11] = tm_hour[0];
datetime[12] = tm_hour[1];
datetime[13] = ':';
datetime[14] = tm_min[0];
datetime[15] = tm_min[1];
datetime[16] = ':';
datetime[17] = tm_sec[0];
datetime[18] = tm_sec[1];
datetime[19] = '\0';
}

//日期类型(格式 yyyy-MM-dd)
void OrderDateTime::getDate(char date[11])
{
updateOrderDateTime();

date[0] = tm_year[0];
date[1] = tm_year[1];
date[2] = tm_year[2];
date[3] = tm_year[3];
date[4] = '-';
date[5] = tm_mon[0];
date[6] = tm_mon[1];
date[7] = '-';
date[8] = tm_mday[0];
date[9] = tm_mday[1];
date[10] = '\0';
}

//时间类型(格式 hh:nn:ss)
void OrderDateTime::getTime(char time[9])
{
updateOrderDateTime();

time[0] = tm_hour[0];
time[1] = tm_hour[1];
time[2] = ':';
time[3] = tm_min[0];
time[4] = tm_min[1];
time[5] = ':';
time[6] = tm_sec[0];
time[7] = tm_sec[1];
time[8] = '\0';

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: