Here's the solution to item 2 from my previous post yesterday (as it's the easiest to complete). It's the inverse of the CalculateDateFromLinear subroutine.
This subroutine takes YEAR, MONTH and DAY and returns with Linear DAYS starting with DAYS=0 for 01/01/2000. Note, it's only good for 100 years as it does NOT account for year 2100 leap anomaly. I'm reusing variables and EEPROM presets previously defined in your program.
Oh and in this routine, my MONTHS start counting from 1, so CounterA+20 is valid here!Code:' ' Subroutine Calculates Linear Days from Date ' ------------------------------------------- CalculateLinearFromDate: DAYS=0 For CounterA=0 to YEAR TempA=CounterA//4 If CounterA < YEAR then TempB=365 If TempA=0 then TempB=TempB+1 DAYS=DAYS+TempB endif Next CounterA IF MONTH > 1 then For CounterA=1 to MONTH-1 Read (CounterA+20),ByteA If TempA=0 then If CounterA=2 then ByteA=ByteA+1 endif DAYS=DAYS+ByteA Next CounterA endif DAYS=DAYS+DAY-1 Return




Bookmarks