MapDayMonthToDword(
char [] lpszDay,
int index
) {
switch (MAKE_UPPER(lpszDay[index])) { // make uppercase
case 'A':
switch (MAKE_UPPER(lpszDay[index+1])) {
case 'P':
return DATE_TOKEN_APRIL;
case 'U':
return DATE_TOKEN_AUGUST;
}
return DATE_TOKEN_ERROR;
case 'D':
return DATE_TOKEN_DECEMBER;
case 'F':
switch (MAKE_UPPER(lpszDay[index+1])) {
case 'R':
return DATE_TOKEN_FRIDAY;
case 'E':
return DATE_TOKEN_FEBRUARY;
}
return DATE_TOKEN_ERROR;
case 'G':
return DATE_TOKEN_GMT;
case 'M':
switch (MAKE_UPPER(lpszDay[index+1])) {
case 'O':
return DATE_TOKEN_MONDAY;
case 'A':
switch (MAKE_UPPER(lpszDay[index+2])) {
case 'R':
return DATE_TOKEN_MARCH;
case 'Y':
return DATE_TOKEN_MAY;
}
// fall through to error
break;
}
return DATE_TOKEN_ERROR;
case 'N':
return DATE_TOKEN_NOVEMBER;
case 'J':
switch (MAKE_UPPER(lpszDay[index+1])) {
case 'A':
return DATE_TOKEN_JANUARY;
case 'U':
switch (MAKE_UPPER(lpszDay[index+2])) {
case 'N':
return DATE_TOKEN_JUNE;
case 'L':
return DATE_TOKEN_JULY;
}
// fall through to error
break;
}
return DATE_TOKEN_ERROR;
case 'O':
return DATE_TOKEN_OCTOBER;
case 'S':
switch (MAKE_UPPER(lpszDay[index+1])) {
case 'A':
return DATE_TOKEN_SATURDAY;
case 'U':
return DATE_TOKEN_SUNDAY;
case 'E':
return DATE_TOKEN_SEPTEMBER;
}
return DATE_TOKEN_ERROR;
case 'T':
switch (MAKE_UPPER(lpszDay[index+1])) {
case 'U':
return DATE_TOKEN_TUESDAY;
case 'H':
return DATE_TOKEN_THURSDAY;
}
return DATE_TOKEN_ERROR;
case 'U':
return DATE_TOKEN_GMT;
case 'W':
return DATE_TOKEN_WEDNESDAY;
}
return DATE_TOKEN_ERROR;
}