วิธีเพิ่มวันในทุบตี?


24

ตัวอย่างเช่นฉันมีวันที่: 4 สิงหาคม 1993 และฉันต้องการเพิ่ม 348 วันในนั้นฉันจะทำอย่างไรในการทุบตี?

คำตอบ:


30

เพียงใช้dateคำสั่งพร้อม-dตัวเลือก:

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

คุณสามารถเปลี่ยนรูปแบบผลลัพธ์ได้หากต้องการ:

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

1
คุณสามารถใช้รูปแบบวันที่ของ OP ได้เช่นกัน:date -d "4 August 1993 348 days" +"%d %B %Y"
หยุดชั่วคราวจนกว่าจะมีประกาศเพิ่มเติม

1
ตามวันที่มนุษย์:%F full date; same as %Y-%m-%d
jperelli

12

ใน bash บน Mac OS X คุณสามารถทำได้:

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

เอาท์พุท: 1994-07-18


1
ถูกมองหาสิ่งนี้ในขณะที่ ข้าพเจ้าซาบซึ้ง. ฉันต้องการแทนที่หมายเลข "348" ด้วยตัวแปรจากสคริปต์ทุบตี ฉันลงเอยด้วยNEXT_DATE=$(date -j -v +$(( incrementDays ))d -f "%Y-%m-%d" "1993-08-04" +%Y-%m-%d)สำหรับคนอื่น ๆ ที่ต้องการทำเช่นนี้
เอียนจี

1

นี่เป็นการใช้งานที่ซับซ้อนกว่านี้เล็กน้อย:

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

หรือด้วยท่อ:

seq 1 5 | xargs -I {} date -d "2014-02-01 {} days" +%Y-%m-%d
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.