static void test_unsigned_modulus(void) { assert_int_equal(UnsignedModulus(0, 3), 0); assert_int_equal(UnsignedModulus(1, 3), 1); assert_int_equal(UnsignedModulus(2, 3), 2); assert_int_equal(UnsignedModulus(3, 3), 0); assert_int_equal(UnsignedModulus(4, 3), 1); assert_int_equal(UnsignedModulus(-1, 3), 2); assert_int_equal(UnsignedModulus(-2, 3), 1); assert_int_equal(UnsignedModulus(-3, 3), 0); assert_int_equal(UnsignedModulus(-4, 3), 2); }
int GetShiftSlot(time_t t) { return UnsignedModulus((t - CF_MONDAY_MORNING), SECONDS_PER_WEEK) / CF_SHIFT_INTERVAL; }