Я разработал программу, в которой текущий месяц будет храниться в формате int
, где текущий месяц задается с ctime()
;
. При этом я сталкиваюсь с проблемами, когда не отображается правильный месяц на экране вывода,
Мой исходный код для вышеуказанной программы выглядит следующим образом:
int main()
{
time_t t;
char *str,*strM; // Pointer str to store output from ctime()
//Pointer strM to store month in Mmm format
int i,M; //M to store the int equivalent of strM
t=time(NULL);
str=ctime(&t);
for(i=0;i<3;i++)
strM[i]=str[4+i];
M=Convert_M(strM);
cout<<"MM="<<M;
getch();
return 0;
}
int Convert_M(char *strM)
{
char *s[12]={"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug",
"Sep","Oct","Nov","Dec"};
int i;
for(i=0;i<12;i++)
{
if((strcmp(strM,s[i]))==0)
{
break;
}
}
return (i+1);
}
В приведенном выше коде Convert_M()
принимает строку "Mmm" и возвращает ее эквивалентную форму int
, например,
.:
Сегодня 25/03/2019,
, поэтому ctime()
вывод
Пн 25 марта 15:25:11 2019
, следовательно, Mmm = Mar
и, следовательно, вывод Convert_M()
должно быть 3
, но приведенный выше код выдает результат в виде:
MM=13
Итак, где же логическая ошибка в моем коде?любая помощь ...