Convertir un año de 4 dígitos en un año de 2 dígitos

Quiero obtener los últimos 2 dígitos de un año. Por ejemplo, si empecé con un valor de entrada “2012” me gustaría generar un valor de salida de “12”.

¿Hay alguna opción en fprintf en la que se imprimirán solo los dos últimos dígitos?

Solo imprime el número módulo 100:

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

imprimirá 12 .

La idea de Steve314 (ahora eliminada) es buena pero no se presenta correctamente. Ejemplo: si el año fue 2009, usar “% 2d” para obtener “09” no es correcto. “% 2d” te dará “9”. “% 02d” te dará “09”.

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

También hay problemas con los números negativos. % d,% 2d,% 02d para (-99) dará como resultado una respuesta de 3 caracteres. Si se sabe que el año no está firmado, recomiende usar ‘u’ en lugar de ‘d’. Si el año que se firma podría ser negativo, es posible que necesite un código adicional para esta situación esotérica.