示例#1
0
static moment_t
THX_moment_with_day_of_week(pTHX_ const moment_t *mt, IV v) {
    dt_t dt;

    if (v < 1 || v > 7)
        croak("Parameter 'day' is out of the range [1, 7]");

    dt = moment_local_dt(mt);
    return THX_moment_with_local_dt(aTHX_ mt, dt - (dt_dow(dt) - v));
}
示例#2
0
文件: ywd.c 项目: chansen/c-dt
int 
main() {
    int i, ntests;

    ntests = sizeof(tests) / sizeof(*tests);
    for (i = 0; i < ntests; i++) {
        const struct test t = tests[i];

        {
            dt_t got = dt_rdn(dt_from_ywd(t.y, t.w, t.d));
            cmp_ok(got, "==", t.rdn, "dt_rdn(dt_from_ywd(%d, %d, %d))", t.y, t.w, t.d);
        }

        {
            int y, w, d;
            dt_to_ywd(dt_from_rdn(t.rdn), &y, &w, &d);
            if (!ok((y == t.y && w == t.w && d == t.d), "dt_to_ywd(dt_from_rdn(%d))", t.rdn)) {
                diag("     got: %.4d-W%.2d-%d", y, w, d);
                diag("     exp: %.4d-W%.2d-%d", t.y, t.w, t.d);
            }
        }

        {
            int got = dt_woy(dt_from_rdn(t.rdn));
            cmp_ok(got, "==", t.w, "dt_woy(dt_from_rdn(%d))", t.rdn);
        }

        {
            int got = dt_yow(dt_from_rdn(t.rdn));
            cmp_ok(got, "==", t.y, "dt_yow(dt_from_rdn(%d))", t.rdn);
        }

        {
            int got = dt_dow(dt_from_rdn(t.rdn));
            cmp_ok(got, "==", t.d, "dt_dow(dt_from_rdn(%d))", t.rdn);
        }

        {
            ok(dt_valid_ywd(t.y, t.w, t.d), "dt_valid_ywd(%d, %d, %d)", t.y, t.w, t.d);
        }

    }
    done_testing();
}
示例#3
0
文件: dt_navigate.c 项目: ifzz/c-dt
dt_t
dt_end_of_week(dt_t dt, dt_dow_t first) {
    return dt + (first - dt_dow(dt) + 6) % 7;
}
示例#4
0
文件: dt_navigate.c 项目: ifzz/c-dt
dt_t
dt_start_of_week(dt_t dt, dt_dow_t first) {
    return dt - (dt_dow(dt) - first + 7) % 7;
}
示例#5
0
int
moment_day_of_week(const moment_t *mt) {
    return dt_dow(moment_local_dt(mt));
}