将4位数年份转换为2位数年份

时间:2013-05-22 17:24:00

标签: c

我想获得一年的最后两位数字。例如,如果我以输入值“2012”开始,我希望生成输出值“12”。

它们是fprintf中的任何选项,它只打印最后两位数字吗?

2 个答案:

答案 0 :(得分:6)

只需打印模数100:

printf("%2d\n", 2012 % 100);

将打印12

答案 1 :(得分:2)

Steve314的想法(现已删除)很好,但没有正确呈现。示例:如果年份为2009年,使用“%2d”获取“09”则不正确。 “%2d”会让你“9”。 “%02d”会让你“09”。

printf("%02d\n", year % 100);

还有负数问题。 (-99)的%d,%2d,%02d都将产生3个字符的答案。如果知道年份是未签名的,建议使用“u”代替“d”。如果签署的年份可能是负面的,那么您可能需要额外的代码来解决这种深奥的情况。