Nice to see this done by hand. I do generally just defer to date-fns when I need to manipulate date-time logic though. Just depends on what you're doing.
I try to keep most app slices under 200kb for JS assets. With a shared library slices between 200k-500k.