Ich versuch's portionen-weise, weil ich leider nicht durchgehend Zeit habe:

z.B Wochentag ausgabe, statt "switch"
Code:
static char	daytab[] = "MoDiMiDoFrSaSo";

	memcpy(Buffer, daytab[ (day-1) << 1 ],  2);
	Buffer[2] = '.';	
	Buffer[3] = 0x00;		// string-terminator
	lcd_write(Buffer);