Yes, the passage of time is a side effect. If your functional program is measuring the passage of time, it must accept time-elapsing arguments which are independent of its computation. If its own computation’s elapsed time is part of the computation, that’s inherently impure. That’s okay, but it’s a limit of functional programming purity. If you’re not measuring the function’s own passage of time but rather time passing as a concept, you can just pass arguments to the function which satisfy that interface and test how it’ll behave. That’s what’s awesome about FP: time is a parameter to your function like any other, and you can call it with any equivalent thing.
(I didn't mean a function that measures time passing, I just meant the time that a computation takes.) Regarding my question which you answered, this means there is no such thing as a pure function then, since any function has the "side effect" of making time pass that wouldn't have if you hadn't called it.
> Time also seems to be a pure function: current state of the universe -> next state of the universe, which is neat.
Certain interpretations of quantum mechanics would disagree that, if you put a given state of the universe into the "iterate the universe's state" function, you'll always get the same universe out the other end. The idea that quantum state transitions are truly random would foreclose on that.