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

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

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

只需打印模数100:

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

将打印12

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

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

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