Refactor run mode processing logic to improve
adaptability for new operations.
Introduce a dedicated "passed" status to
distinguish passed users instead of classifying
them as failed.
The previous implementation only considered the case when more than one nearest time exists,
so we introduced the prefer_early flag to decide which one to be selected.But the comparsion
mistakenly omitted the edge case when the difference is 0.
previous time that you can select the next day is 19:00, this may be
tensive, because the time rested to modify the reserve date is limited.
So in current commit, we change this into 18:00.
The previous implementation directly replaced the current
in-memory state of system and user configurations during
file loading. This behavior did not align with user
expectations, as it could discard unsaved changes made in the UI.
The fix ensures that loading a configuration file only
updates the internal in-memory state of system and user
configurations, preserving any unsaved UI modifications.