Bạn nên kiểm thử ngày nào?
Một nửa của việc kiểm thử ngày tháng là dịch chuyển đồng hồ. Nửa còn lại là biết dịch chuyển đến đâu. Một máy tính trực tuyến sẽ cho bạn biết chín mươi ngày kể từ hôm nay là ngày nào. Nó sẽ không cho bạn biết đáp án đó là ngày nghỉ của ngân hàng, hay là ngày cuối của quý.
04/08/2008, và hiển thị cả hai
cách đọc thay vì đoán lấy một.Ngày làm việc, với ngày lễ thật
“Mười ngày làm việc kể từ bây giờ” không phải phép tính số học - nó phụ thuộc vào việc bạn đếm theo lịch của nước nào. Cùng ngày bắt đầu, cùng mười ngày, hai đáp án khác nhau:
$ chrono calc --base 2027-09-01T00:00:00 --shift +10bd --calendar us-banking result: 2027-09-16T00:00:00 $ chrono calc --base 2027-09-01T00:00:00 --shift +10bd --calendar pl result: 2027-09-15T00:00:00
Lệch nhau một ngày, và máy tính sẽ cho bạn biết vì sao nếu bạn hỏi về ngày ở giữa:
$ chrono calc --base 2027-09-06T00:00:00 --calendar us-banking metadata: weekday Monday business day no (us-banking) holiday Labor Day what this date lands on: public holiday (weekend and holiday marks follow the us-banking calendar)
Hoa Kỳ và Ba Lan được cung cấp làm các lịch tham chiếu, được chọn vì cùng nhau chúng thử mọi loại quy tắc hiện có: ngày cố định, ngày thứ n của một thứ trong tháng, ngày tính từ Lễ Phục sinh, và quy tắc của Mỹ khi ngày lễ rơi vào thứ Bảy thì được nghỉ vào thứ Sáu liền trước. Thêm một quốc gia chỉ là thêm một tệp dữ liệu, không phải sửa mã.
Mọi định dạng cùng lúc
Ứng dụng được kiểm thử muốn ngày ở dạng nó mong đợi. Thay vì bắt bạn chuyển đổi, máy tính in ra tất cả - cùng một mặt nạ tùy chỉnh cho những dạng không khớp chuẩn nào.
$ chrono calc --preset year-2038 --zone +00:00 Chrono Mock - date calculator preset: year-2038 - 2038 boundary explains: Does the app survive the 32-bit Unix time boundary (2038-01-19T03:14:07Z)? result: 2038-01-19T03:14:07 formats: ISO date 2038-01-19 ISO datetime 2038-01-19T03:14:07+00:00 US 01/19/2038 PL 19.01.2038 epoch (s) 2147483647 epoch (ms) 2147483647000 FILETIME 137919572470000000 RFC 1123 Tue, 19 Jan 2038 03:14:07 GMT ... what this date lands on: at or past the 2038-01-19T03:14:07Z 32-bit time_t limit (Y2038)
Giá trị epoch đó không phải ngẫu nhiên - 2147483647 đúng là số lớn nhất mà một số
nguyên có dấu 32-bit chứa được, và đó là toàn bộ lý do ngày này quan trọng.
Đọc một ngày theo chiều ngược
Chiều ngược lại cũng hữu ích không kém: dán một ngày từ nhật ký và tìm hiểu nó là gì. Khi định dạng
mơ hồ - mà 04/08 thì mơ hồ ở nửa thế giới - cả hai cách đọc được hiển thị
thay vì đoán một, vì chính việc đoán là nguồn gốc của báo cáo lỗi ban đầu.
$ chrono calc --analyze 04/08/2027 Chrono Mock - date analysis input: 04/08/2027 (ambiguous - month/day order differs by locale) US MM/DD/YYYY: 2027-04-08 (Thursday) PL DD/MM/YYYY: 2027-08-04 (Wednesday)
Cách nhau bốn tháng, rơi vào các thứ khác nhau trong tuần. Ngày ISO thì không mơ hồ và được đọc như vậy, còn thứ hoàn toàn không phải ngày thì bị từ chối thay vì đoán mò.
Dựng từ các bước, không phải từ một câu
Một thời điểm là điểm xuất phát cộng các bước, và kết quả trung gian được hiển thị sau từng bước, nên một biểu thức cho ra đáp án bất ngờ sẽ chỉ cho bạn chỗ nó rẽ hướng. Năm loại bước: dịch theo một đơn vị, đặt giờ trong ngày, nhảy đến ranh giới kỳ, chuyển đến ngày làm việc gần nhất, và diễn đạt lại trong một múi giờ khác.
# Giây cuối cùng trước khi sang năm mới chrono calc --base today --snap eoy # Chín mươi ngày làm việc kể từ bây giờ, theo lịch ngân hàng Mỹ chrono calc --base today --shift +90bd --calendar us-banking # Mười tám năm lẻ một ngày trước, để kiểm tra tuổi chrono calc --base today --shift -18y --shift -1d
Bất kỳ ngày nào đã tính đều đi thẳng vào một phiên thay thế thời gian, và
--json xuất cùng kết quả đó dưới dạng cho máy.
Những ngày đáng kiểm thử →