А, зачем ещё 1 switch? Просто вернуть уже результат (порядковый номер или название месяца)
У меня, кроме как привести "типы" данных к одному виду, ничего в голову не пришло.
Пример использования:
PHP код:
main()
{
new buffer[9];
new result = GetDate("m", buffer);
if(result == -1)
{
printf("Порядковый номер месяца: %s", buffer);
}
else if(result == 0)
{
printf("Название месяца: %s", buffer);
}
}
Сама функция:
PHP код:
stock GetDate(const string[], output[], size = sizeof(output))
{
static month;
getdate(_, month, _);
switch(YHash(string, false, hash_fnv1))
{
case _I@f<m>:
{
valstr(output, month);
return -1;
}
case _I@f<mm>:
{
static const months_text[12][9] =
{
"январь",
"февраль",
"март",
"апрель",
"май",
"июнь",
"июль",
"август",
"сентябрь",
"октябрь",
"ноябрь",
"декабрь"
};
strins(output, months_text[month-1], 0, size);
return 0;
}
}
return 1;
}
P.S: Костыли в деле :)