I don't really follow your reasoning.. what I am having is a routing problem, my time horizon is within a few day, but I want to penalise if a vehicle arrives within closing hours at a specific day - hence taking the modulus.
sl = solver.IntVar(0, 0)
for cust in customers.customers:
if (cust.tw_open is not None) and (cust.tw_close is not None):
less1 = solver.ConditionalExpression(solver.IsGreaterOrEqualCstVar(((time_dimension.CumulVar(routing.NodeToIndex(cust.index)))%86400),28000).Var(), solver.IntVar(0,0), 50).Var()
more1 = solver.ConditionalExpression(solver.IsLessOrEqualCstVar((time_dimension.CumulVar(routing.NodeToIndex(cust.index))%86400),28800).Var(), solver.IntVar(0,0), 50).Var()
slack = solver.Max(less1, more1).Var()
sl=solver.Sum([sl,slack]).Var()
solver.Minimize(sl,1)
routing.AddVariableMinimizedByFinalizer(sl)