c++中如何声明一个时间的结构体,可以精确表示年,月,日,时,分,秒。提示用户输入时间,并完整表示出来

 我来答
帖正雅0fb
2011-12-15 · TA获得超过5755个赞
知道大有可为答主
回答量:3351
采纳率:57%
帮助的人:1961万
展开全部
在Win32程序汇编中默认就有SYSTEMTIME类数据结构,也就是时间的结构体

下面是编译器自动生成的SYSTEMTIME结构体代码:
SYSTEMTIME STRUCT
  {
  WORD wYear ; 年
  WORD wMonth ;月
  WORD wDayOfWeek ;星期,0=星期日,1=星期一...
  WORD wDay ;日
  WORD wHour ;时
  WORD wMinute ;分
  WORD wSecond ;秒
  WORD wMilliseconds ;毫秒
  }SYSTEMTIME ENDS

  结构中的字段全为word类型,而Win32程序中用的往往是dword型变量,所以在使用这些数据之前往往要先把它们转换为dword类型,用movzx指令就可以实现。
  与获取系统时间的函数相对应,可以用下面的两个函数设置系统时间:
  invoke SetLocalTime,lpSystemTime;获取本地时间
  invoke SetSystemTime,lpSystemTime;获取格林威治标准时间

你可以照着这个写,定义好结构体后让用户输入并保存起来
至于那个WORD,自己写程序你完全可以把改成熟悉的int
wxw072
2011-12-15 · TA获得超过3954个赞
知道小有建树答主
回答量:1079
采纳率:0%
帮助的人:114万
展开全部
C++系统本身就已经定义好了这样的时间结构类型,在MSDN里面是这样的:
typedef struct _SYSTEMTIME {
WORD wYear;//表示年,有效范围是1601 到30827
WORD wMonth;//表示月,有效范围1~12。
WORD wDayOfWeek;//表示星期,星期一~星期日
WORD wDay;//表示天,1~31
WORD wHour;//表示小时,0~23
WORD wMinute;//表示分,0~59
WORD wSecond;//表示秒,0~59
WORD wMilliseconds;//表示毫秒,0~999
} SYSTEMTIME, *PSYSTEMTIME;
具体说明可以参考MSDN里面的介绍。

参考资料: http://msdn.microsoft.com/en-us/library/windows/desktop/ms724950(v=vs.85).aspx

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
妖刀路过
2011-12-15 · TA获得超过126个赞
知道小有建树答主
回答量:125
采纳率:100%
帮助的人:136万
展开全部
VC编译运行通过

#include<stdio.h>
#include<stdlib.h>
void main()
{
struct time{
int year;
int mouth; //声明一个结构体,它的成员依次是年月日时分秒
int day;
int minuter;
int second;
};
time pt;
printf("input the current time\n");
scanf("%d%d%d%d%d",&pt.year,&pt.mouth,&pt.day,&pt.minuter,&pt.second);
printf("the time is %d%d%d%d%d\n",pt.year,pt.mouth,pt.day,pt.minuter,pt.second);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
拖延癌晚期无救
2011-12-15 · TA获得超过169个赞
知道小有建树答主
回答量:160
采纳率:100%
帮助的人:93万
展开全部
要一个能运行成功的程序?
那我得找个VC才能写 如果不需要成功 我可以写一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式