C coma en declaración ternaria

int m = 5, d = 12, y = 1975, val;
    // May 12, 1975

¿Alguien puede explicar la función / propósito del operador de coma en la línea de código a continuación:

val = (d+=m<3?y--:y-2,23*m/9+d+4+y/4-y/100+y/400)%7;

lospor encima de la línea fue escrito por Mike Keith para calcular el día de la semana dada la fecha (d = día, m = mes, y = año). Donde domingo = 0, lunes = 1, martes = 2, miércoles = 3, jueves = 4, viernes = 5, sábado = 6. Entiendo que el y-- se ejecuta si d + = m <3 es verdadero, de lo contrario, el y -2 se ejecuta. Lo que no entiendo es el propósito de la coma después de y-2.

Respuestas a la pregunta(4)

Su respuesta a la pregunta