Remember that strings are zero terminated! You should always reserve one more character for the \0 at the end of the string. In other words - change:
char *day = new char[2];
to:
char *day = new char[3];
That should do it.
BTW I disagree with strogg - IMHO it's always a good idea to pair new[] with delete[] - even if there are no destructors to call.