Hi, you must keep in mind that you have to implement a gregorian calendar in software to have 365 and 366 days/year to know if the current February month have 28 or 29 days.
You can do it using some different methodes.
For instance, as you know the year 2000 it was one leap year.
So, 2004, 2008, 2012 are leap years.
If your PIC calendar starts in 2000, is very easy to know if a specific year is or not the leap year.
Example: you can write a table with this years from 2000 to 2100 that results in 25 values; 0x00, 0x04, 0x08, 0x12...
Whenever he will be 28 of February, before passing to 1 of April, we go to see if the year is leap, by comparing the present year with the table.
IF the result TRUE, the next day must be 29 ELSE must be April 1.
Another way is take current year value and subtract sucessively 4 until the result equal to zero or negative (result with bit 7 equal to 1).
IF equal to ZERO the year is 366 days ELSE is 365.
All this can be done in assembly.
Concerning jumping two or three days I think that your ideia is correct.
I hope this helps
Regards