Làm thế nào để thêm một ngày để hẹn hò trong bash?


24

Ví dụ: tôi có ngày: 4 tháng 8 năm 1993 và tôi muốn thêm 348 ngày vào đó, làm thế nào tôi có thể làm điều đó trong bash?

Câu trả lời:


30

Chỉ cần sử dụng datelệnh với -dtùy chọn:

$ date -d "1983-08-04 348 days"
Tue Jul 17 00:00:00 BST 1984  

Bạn có thể thay đổi định dạng đầu ra nếu bạn muốn:

$ date -d "1983-08-04 2 days" +%Y-%m-%d
1983-08-06                                           

1
Bạn cũng có thể sử dụng định dạng ngày của OP:date -d "4 August 1993 348 days" +"%d %B %Y"
Tạm dừng cho đến khi có thông báo mới.

1
Theo ngày của người đàn ông:%F full date; same as %Y-%m-%d
jperelli

12

Trong bash trên Mac OS X, bạn có thể làm điều này:

date -j -v +348d -f "%Y-%m-%d" "1993-08-04" +%Y-%m-%d

Đầu ra: 1994-07-18


1
Đã tìm kiếm điều này trong một thời gian. Tôi đánh giá cao. Tôi muốn thay thế số "348" bằng một biến từ tập lệnh bash. Tôi đã kết thúc với NEXT_DATE=$(date -j -v +$(( incrementDays ))d -f "%Y-%m-%d" "1993-08-04" +%Y-%m-%d)bất cứ ai khác muốn làm điều này.
Ian G

1

Đây là một cách sử dụng phức tạp hơn một chút về điều này:

for i in `seq 1 5`;
do;
  date -d "2014-02-01 $i days" +%Y-%m-%d;
done;

hoặc với đường ống:

seq 1 5 | xargs -I {} date -d "2014-02-01 {} days" +%Y-%m-%d
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.