c++/c获取系统时间,并格式化输出

话说最难消受美人恩,女士的要求是很难拒接的。。。

应一女士要求,帮其实现个小程序。要求c/c++获取系统时间,并以中文格式化输出。

第一反应,so简单。

话说函数:
1、size_t strftime( char *strDest, size_t maxsize, const char *format, const struct tm *timeptr );
     根据格式字符串生成字符串。
2、struct tm *localtime(const time_t *timer);
    取得当地时间,localtime获取的结果由结构tm返回。
3、time_t time( time_t *timer );
    获取系统时间。

都需要 #include 头文件。

返回的字符串可以依下列的格式而定:
%a 星期几的缩写。
%A 星期几的全名。
%b 月份名称的缩写。
%B 月份名称的全名。
%c 本地端日期时间较佳表示字符串。
%d 用数字表示本月的第几天 (范围为 00 至 31)。日期
%H 用 24 小时制数字表示小时数 (范围为 00 至 23)。
%I 用 12 小时制数字表示小时数 (范围为 01 至 12)。
%j 以数字表示当年度的第几天 (范围为 001 至 366)。
%m 月份的数字 (范围由 1 至 12)。
%M 分钟。
%p 以 ''AM'' 或 ''PM'' 表示本地端时间。
%S 秒数。
%U 数字表示为本年度的第几周,第一个星期由第一个周日开始。
%W 数字表示为本年度的第几周,第一个星期由第一个周一开始。
%w 用数字表示本周的第几天 ( 0 为周日)。
%x 不含时间的日期表示法。
%X 不含日期的时间表示法。
%y 二位数字表示年份 (范围由 00 至 99)。
%Y 完整的年份数字表示,即四位数。
%Z(%z) 时区或名称缩写。
%% % 字符。

抽象?那直接上程序演示下,只做了部分,应该有可以举一反三的效果了

// ForGHY.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include #include #include using namespace std; int _tmain(int argc, _TCHAR* argv[]) { string num[11]={"0","一","二","三","四","五","六","七","八","九","十"}; time_t t = time(0); char tyear[5]; char tm[3]; char td[3]; char tH[3]; char tM[3]; char tAll[1024];// 应该差不多了吧 strftime(tAll,sizeof(tAll),"%Y %x %A %X ......",localtime(&t)); puts(tAll); strftime(tyear,sizeof(tyear),"%Y",localtime(&t)); strftime(tm,sizeof(tm),"%m",localtime(&t)); strftime(td,sizeof(td),"%d",localtime(&t)); strftime(tH,sizeof(tH),"%H",localtime(&t)); strftime(tM,sizeof(tM),"%M",localtime(&t)); string result = ""; // 格式化 年 int year=0; year =atoi(tyear); int y[4]; y[0] = year/1000; year %= 1000; y[1] = year/100; year %= 100; y[2] = year/10; year %= 10; y[3] = year/1; result = num[y[0]]+num[y[1]]+num[y[2]]+num[y[3]] +"年"; // 格式化 月 int month = atoi(tm); int m[2]; m[0] = month/10; m[1] = month%10; if(m[0]!=0) { result += num[m[0]]; if(m[1]==0) { result += num[10]; }else { result += num[m[1]]; } }else { result += num[m[1]]; } result += "月"; // 格式化 日 int day = atoi(td); int d[2]; d[0] = day/10; d[1] = day%10; if(d[0]!=0) { result += num[d[0]]; if(d[1]==0) { result += num[10]; }else { result += num[d[1]]; } }else { result += num[d[1]]; } result += "日 "; // 格式化 时 int hour = atoi(tH); int H[2]; H[0] = hour/10; H[1] = hour%10; if(H[0]!=0) { result += num[H[0]]; if(d[1]==0) { result += num[10]; }else { result += "十"+num[H[1]]; } }else { result += num[H[1]]; } // 格式化 分 int min = atoi(tM); if(min ==0) { result += "整"; }else { result += "时"; int M[2]; M[0] = hour/10; M[1] = hour%10; if(M[0]!=0) { result += num[M[0]]; if(d[1]==0) { result += num[10]; }else { result += "十"+num[M[1]]; } }else { result += num[M[1]]; } } result += "分"; cout << result<

运行结果截图
 

学习交流>^<欢迎拍砖

你可能感兴趣的:(C++/C)