Security
|Thachthat.biz|
today : | at : | safemode : ON
> / home / root /public_html / it.thachthat.biz /
Name User Perms Com Modified Label

Lấy khoảng thời gian một tuần có chứa ngày cho trước Unknown rwxr-xr-x 0 03:18

Filename Lấy khoảng thời gian một tuần có chứa ngày cho trước
Permission rw-r--r--
Author Unknown
Date and Time 03:18
Label
Action


Bài toán:
Cho ngày cụ thể D. Tìm khoảng thời gian 1 tuần Dx - Dy sao cho D thuộc trong khoảng thời gian Dx - Dy. Biết Dx là ngày thứ ba (Tuesday).

Giải:
 1 tuần có 7 ngày
Chủ nhậtThứ hai Thứ ba Thứ tư Thứ nămThứ sáu Thứ bẩy
Từ ngày D ta xác định được D là ngày chủ nhật hay thứ mấy.
Do khoảng thời gian là 1 tuần, Dx là thứ ba nên Dy là thứ hai.
Nhìn vào bảng trên, ta nhận thấy:
- Nếu D là ngày Thứ ba, Thứ tư, Thứ năm, Thứ sáu, Thứ bẩy thì Dx sẽ là Thứ ba trong bảng. Dy sẽ là Thứ hai - 1 tuần sau của Thứ hai trong bảng.
- Nếu D là ngày Chủ nhật hoặc Thứ hai thì Dy sẽ là Thứ hai trong bảng. Theo đó Dx sẽ là Thứ ba - 1 tuần trước của Thứ ba trong bảng.

Code PHP:
$d = time(); // CURRENT TIME
$dayIndex = date('w', $d); // Trả về số thứ tự của ngày trong tuần, bắt đầu từ 0 là Chủ nhật
if ($dayIndex >= 2) { // 2 là số thứ tự của Thứ ba
    $dx= strtotime(date('Y-m-d 00:00:00', $d- ($dayIndex -2) *24*3600));
    $dy= strtotime(date('Y-m-d 23:59:59', $dx+6*24*3600));
} else {
    $dy= strtotime(date('Y-m-d 00:00:00', $d+ (1-$dayIndex ) *24*3600)); // 1 là số thứ tự của Thứ hai
    $dx= strtotime(date('Y-m-d 23:59:59', $dy-6*24*3600));
}

echo date('Y-m-d', $dx) . ' - ' . date('Y-m-d', $dy);

0 nhận xét:

 

Jayalah Indonesiaku © 2014 IT Thạch Thất
VB (Vio b374k) Template design by Thachthat.biz