Tentang mendapatkan Tanggal - Tanggal n hari

8

Misalkan saya memiliki tanggal tertentu yang disimpan dalam variabel date_m. Saya ingin ((date_m)-25)berkencan.

Misalnya: Saya telah 15/09/2014menyimpan dalam variabel saya, maka saya ingin 21/08/2014kembali jika saya mengurangi 25 dari tanggal disimpan dalam variabel.

Seorang pria
sumber

Jawaban:

13

Dengan implementasi GNU dari date, untuk menampilkan tanggal kemarin, masukkan:

$ date --date="1 days ago"

ATAU

$ date --date="-1 day"

Untuk pertanyaan Anda:

$ date --date="25 days ago"

ATAU

$ date --date="-25 day"

Untuk menggunakannya dengan variabel, Anda dapat menggunakan $():

pastDate=$(date --date="-25 day")
echo "$pastDate"

Untuk nhari-hari kasus umum dan untuk tanggal tertentu:

#!/bin/bash
date1="Tue Sep 2 07:53:47 EEST 2014"
echo "Before? "
read n
date --date="$date1 -$n day"

Sumber

Nidal
sumber
GNU datetidak mem 15/09/2014- parse sebagai tanggal yang valid.
Kusalananda
1

Berikut ini tanggal dan jumlah hari diumumkan.

Script mengubah tanggal dalam detik dan menghitung titik waktu 1 ( Tp1) adalah jika jumlah hari (dalam detik) dikurangi dari titik waktu 2 yang diberikan ( Tp2). Pada akhirnya detik dikonversi kembali ke tanggal.

Date_m=2014/09/15
Days=25
Seconds=$(echo "$Days"*60*60*24| bc -l)
Tp2date=$(date -d "$Date_m" +%Y/%m/%d)
Tp2sec=$(date -d "$TD" +%s)
Tp1sec=$(echo "$TDsec"-"$Seconds"| bc -l)
Tp1date=$(date -d @$Tp1sec)
echo "$Tp1date"
Ruthger Righart
sumber
Format tanggal adalah 15/09/2014, bukan dengan tahun pertama.
Kusalananda
0

Agak terlambat, berikut adalah salah satu cara untuk menangani tanggal format dd / mm / yyyy non-AS dengan penyesuaian relatif 25 hari:

date_m='15/09/2014'
date --date "$(IFS=/ read d m y <<<"$date_m"; echo "$m/$d/$y - 25 days")" +%d/%m/%Y

21/08/2014

Itu mengasumsikan shell seperti bashyang mampu menangani pengalihan string <<<, dan GNU date.

roaima
sumber