Setting world time causes strange lunar cycles

So say I have a reference to a World (with DO_DAYLIGHT_CYCLE set to false), and I set the time to 18000, and its a full moon (this should always be true, but for some reason it isn’t).

If I then set the time to 114000, it should be a new moon, but instead its still a full moon.

And if I then set the time to 113999, it becomes a waning crescent. And each time I set the time back by any value, the lunar cycle also decrements by one.

This does not happen in singleplayer using the /time set command.

Specific ticks are supposed to correspond to specific phases of the moon, but Paper does not seem to respect this when using World.setTime()

Am I doing something wrong or is this a bug?
How can I get the expected behavior?

World.setFullTime() was the solution I needed.