This is probably not worth it, as pretty much all compilers allow to generate code that uses doubles just via integer arithmetics. Yes, this is slow, but nothing should use so many time intervals that this is actually a problem. Using a struct that is just a double on some platforms and two integers on others would result in different precision on different systems - something that is very much not desirable. It would also make it much harder to serialize time intervals or dates.