自用时间生成器
2014-04-16 13:53
239 查看
main.cpp
otime.h
#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'; }
相关文章推荐
- Qt中mouseMoveEvent在MainWindow中使用
- 稳压电源(2)变压
- Java overload和override的区别分析
- ASP.NET状态保持方案若干
- sql:找出工资第二高的人名
- 有种说不出来的感觉
- PostgreSQL数据库完美备份恢复
- MFC树形控件
- 稳压电源(1) 基本概念 (开始上载)
- SimpleAdapter设置ViewBinder
- 看脸色知体内各积毒 有效清洁内脏妙方
- CSS背景全攻略
- Rsa加密解密
- [Android]解决Window系统adb shell后中文显示乱码
- TI DSP库VLIB介绍及DM8168DSP库使用
- Linux中的arp命令
- hdu3555 数位DP
- 使用zlib实现gzip格式数据的压缩和解压
- 关于 extern inline
- 近期所有的面试题大全