I’ve mentioned this before, but I think you could keep integers as the data type and use minutes instead of days as the unit of measure. Just to give a few responses to people who objected:
- I think keeping the notion of Relearning steps is beneficial. Cards that come due in the Relearning phase should go to the front of the line.
- Cards scheduled with an interval of < 24 hours would have the Relearning status. If the Relearn interval goes past into the next day, I think that’s fine, but another alternative is that those just convert to review cards (kinda like relearning steps over 12 hours do now).
- People didn’t like the idea that reviews would be showing up at all times of the day if they’re scheduled to the resolution of minutes. You could just set reviews that are scheduled in a day to all show up for review at the start of the day. Use a
floor()function.
This depends on what the actual difficulty here is. If the difficulty is converting an integer type to a float or double type, than changing to minutes for units would bypass that issue. I don’t know the code well enough to know what other nightmare problems that would pose though.