【问题标题】:extract part of time.h (localtime)提取部分 time.h (localtime)
【发布时间】:2013-02-12 01:41:16
【问题描述】:

我想从 tm_sectm_min only 中提取 parts,作为 simple int(不是数组或字符串)如果某些事情我不需要 100% 正确的时间,因为我出于自己的利益而只是想知道如何做,那是怎么回事和可能的(如果是的话)。 在尝试用

做某事之前
time_t rawtime;
struct tm * timeinfo;
char buffer [80];

time (&rawtime);
timeinfo = localtime (&rawtime);
strftime (buffer,80,"Now it's %H:%M.",timeinfo);
puts (buffer);

但是缺乏经验阻止了我,现在我不知道该怎么做(只是编程的初学者)当然很抱歉,如果有这样的问题,但我已经尝试过但没有找到。

*这样做的目的不是只显示我想要的部分,而是编辑它们

【问题讨论】:

  • 别忘了那一年被编码为“年 - 1900”(所以你必须加上 1900 才能得到实际的日历年),那个月份编码为 0 代表一月到 11 代表十二月(所以你需要加一个才能得到正常的月份数)。而mktime() 函数可以将修改后的struct tm 转换回time_t

标签: c time ctime time.h


【解决方案1】:

简单地访问结构的成员:

printf("The tm_seconds field is %d\n", timeinfo->tm_sec);

换句话说,如果您有一个指向struct tm 类型值的指针,您可以使用箭头运算符 (->) 来访问任何成员。 tm_sec 成员的类型为 int,与所有其他成员一样。

您可以复制该值:

int my_seconds = timeinfo->tm_sec;

然后也打印副本:

printf("my seconds are %d\n", my_seconds);

【讨论】:

  • 非常感谢,我会给你rep,但没有能力这样做:)
  • @undefined:几分钟后,你就能接受答案,这也会给你一些代表。
  • 现在我可以给rep了,也标记为完成,再次非常感谢你,你拯救了我的热情
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-02
  • 1970-01-01
  • 1970-01-01
  • 2020-10-08
  • 1970-01-01
  • 2023-01-25
相关资源
最近更新 更多