After this:
>scanf("%s", &date);
put this:
>while (getchar() != '\n');
This will eat up the extra byte from the input buffer.
(and yes, use the while not for version)
Also
>void main(void)
No, use int main(void)
>char choice;
>while (choice != '9')
You didn't initialise choice before you tested it for a specific value. Better to set it to something first. Eg:
>char choice = ' ';
Did you fix your infinite loop?