Hi Gayan,
If you're not using an RTC chip then this might have been the perfect opportunity to use the low power oscillator and a 32768 Hz watch crystal.
You could run on the 4 or 8 MHz INTOSC and use an interrupt service routine to drive your displays and use a 1 second Timer 1 'overflow' interrupt to update your RTC variables. When you detect loss of main power you simply turn off the displays and goto "sleep". The lower power Timer 1 oscillator continues to run during "sleep" and wakes up the microprocessor on Timer 1 overflow. At that time you would simply update your RTC variables, reset bit 15 on the TMR1 register pair (for 1 second overflow), and go back to sleep.
Mike