1 #include "stdafx.h"
2 #include <Windows.h>
3 #include <iostream>
4 #include <time.h>
5 #include <atltime.h>
6 using namespace std;
7
8 void Method_1();
9 void Method_2();
10 void Method_3();
11 void Method_4();
12 void Method_5();
13 void Method_6();
14
15 int main()
16 {
17 Method_1();
18 Method_2();
19 Method_3();
20 Method_4();
21 Method_5();
22 Method_6();
23
24
25 getchar();
26
27 return 0;
28 }
29
30 void Method_1()
31 {
32 time_t t = time(0);
33 char tmp[64];
34 strftime(tmp, sizeof(tmp), "%Y/%m/%d %X %A 本年第%j天 %z", localtime(&t));
35 puts(tmp);
36
37 /*++
38 size_t strftime(char *strDest, size_t maxsize, const char *format, const struct tm *timeptr);
39 根据格式字符串生成字符串。
40 struct tm *localtime(const time_t *timer);
41 取得当地时间,localtime获取的结果由结构tm返回
42 返回的字符串可以依下列的格式而定:
43 %a 星期几的缩写。Eg:Tue
44 %A 星期几的全名。 Eg: Tuesday
45 %b 月份名称的缩写。
46 %B 月份名称的全名。
47 %c 本地端日期时间较佳表示字符串。
48 %d 用数字表示本月的第几天 (范围为 00 至 31)。日期
49 %H 用 24 小时制数字表示小时数 (范围为 00 至 23)。
50 %I 用 12 小时制数字表示小时数 (范围为 01 至 12)。
51 %j 以数字表示当年度的第几天 (范围为 001 至 366)。
52 %m 月份的数字 (范围由 1 至 12)。
53 %M 分钟。
54 %p 以 ''AM'' 或 ''PM'' 表示本地端时间。
55 %S 秒数。
56 %U 数字表示为本年度的第几周,第一个星期由第一个周日开始。
57 %W 数字表示为本年度的第几周,第一个星期由第一个周一开始。
58 %w 用数字表示本周的第几天 ( 0 为周日)。
59 %x 不含时间的日期表示法。
60 %X 不含日期的时间表示法。 Eg: 15:26:30
61 %y 二位数字表示年份 (范围由 00 至 99)。
62 %Y 完整的年份数字表示,即四位数。 Eg:2008
63 %Z(%z) 时区或名称缩写。Eg:中国标准时间
64 %% % 字符。
65 --*/
66 }
67 void Method_2()//windowsAPI 精确到毫秒
68 {
69 SYSTEMTIME sys;
70 GetLocalTime(&sys);
71 printf("%4d/%02d/%02d %02d:%02d:%02d.%03d 星期%1d\n", sys.wYear, sys.wMonth, sys.wDay, sys.wHour, sys.wMinute, sys.wSecond, sys.wMilliseconds, sys.wDayOfWeek);
72
73 }
74
75 void Method_3()//利用系统函数,还能修改系统时间!!!!谨慎!!!会修改系统时间
76 {
77 //system("time");
78 }
79 void Method_4() //这种方法是调用当地时间(星期、月份、日期、时间、年份),并且一直更新
80 {
81 time_t nowTime;
82 time(&nowTime);
83 printf("At now time is %s\n", ctime(&nowTime));
84 }
85 void Method_5()
86 {
87 time_t timer;
88 time(&timer);
89 tm* t_tm = localtime(&timer);
90 printf("At now time is %d/%d/%d\n", t_tm->tm_year + 1900, t_tm->tm_mon + 1, t_tm->tm_mday);
91 printf("today is %M %d/%d/%d %d:%d\n", t_tm->tm_year + 1900, t_tm->tm_mon + 1, t_tm->tm_mday, t_tm->tm_hour, t_tm->tm_min, t_tm->tm_sec);
92 }
93 void Method_6()
94 {
95 CString strFileName = CTime::GetCurrentTime().Format("_%Y-%m-%d_%H-%M-%S.bmp");
96
97
98 }