显示系统滴答计数的时间字符串

时间:2014-02-05 01:36:15

标签: c timestamp

假设:

  • 自冷启动以来unsigned int systemTicks(void);
  • 的系统滴答数
  • 通过unsigned int usPerTick(void);
  • 每个系统的微秒数

如何在C中创建固定宽度的时间戳字符串?我可以灵活地使用这种格式,但希望最多支持100分钟并保持毫秒级的分辨率。一个示例格式是"99:59:999",意味着自冷启动以来已经过了99分钟和59.999秒。

printf允许我写小数(分,秒,ms),最小宽度,但不是最大宽度。我正在寻找简单的解决方案。

1 个答案:

答案 0 :(得分:1)

您希望打印固定宽度,前导零小数部分为微秒。由于微秒有6位数,你想要,

sprintf(timestamp,"%d:%02d.%06d",ticks/60,ticks%60,mseconds);

添加结构/指针风味......