Tons of different way i guess but one of my favourite is an external RTC like DS1307. You can even use an internal timer to do it too. OR depending what else your PIC do, do everything in a loop with a mix of PAUSE and incrementing few variables like secondes/minutes/hours/day/week/month/year