DATEADD(1) User Commands DATEADD(1)

dateadd - افزودن بازه زمانی به تاریخ/زمان و چاپ نتیجه

dateadd [OPTION]... [DATE/TIME] [DURATION]

بازه زمانی (DURATION) را به تاریخ/زمان (DATE/TIME) اضافه کرده و نتیجه را چاپ می‌کند. اگر DATE/TIME حذف شود اما DURATION مشخص شده باشد، فهرستی از تاریخ/زمان‌ها را از ورودی استاندارد (stdin) می‌خواند. اگر DURATION حذف شود اما DATE/TIME مشخص شده باشد، فهرستی از بازه‌های زمانی را از ورودی استاندارد (stdin) می‌خواند.

بازه‌های زمانی به ترتیب به صورت nY، nMO، nW یا nD برای سال، ماه، هفته یا روز، یا nH، nM، nS برای ساعت، دقیقه و ثانیه مشخص می‌شوند که در آن N یک عدد (احتمالاً منفی) است. نماد واحدها می‌تواند با حروف کوچک نیز نوشته شود (y، mo، w، d، h، m، s) و نماد واحد `d' می‌تواند حذف شود.

توجه داشته باشید که جمع بازه‌های زمانی خاصیت جابه‌جایی ندارد!
2000-03-30 +1mo +1d -> 2000-05-01
2000-03-30 +1d +1mo -> 2000-04-30

گزینه‌های شناخته‌شده:

چاپ راهنما و خروج
چاپ نسخه و خروج
نادیده گرفتن پیام‌های خطای تجزیه‌کننده تاریخ/زمان و بازه زمانی و اصلاحات خودکار. حالت پیش‌فرض، چاپ یک هشدار یا مقدار اصلاح‌شده و بازگرداندن کد خطای 2 است.
قالب خروجی. این می‌تواند یک رشته مشخص‌کننده (مشابه FMT در ()strftime) یا نام یک گاه‌شمار (تقویم) باشد.
قالب ورودی، می‌تواند چندین بار استفاده شود. هر تاریخ/زمان به ترتیبی که داده شده است به تجزیه‌کننده‌های قالب ورودی ارسال می‌شود؛ اگر یک تاریخ/زمان با یک رشته مشخص‌کننده قالب ورودی داده‌شده با موفقیت خوانده شود، همان مقدار استفاده خواهد شد.
برای ورودی‌هایی با مشخصات ناکافی، از DT به عنوان مقدار پشتیبان برای پر کردن فیلدهای ناموجود استفاده می‌شود. همچنین برای مشخص‌کننده‌های قالب مبهم جهت تعیین موقعیت بازه آن‌ها در محور زمان مطلق استفاده می‌گردد. باید یک تاریخ/زمان در قالب ISO8601 باشد. در صورت حذف، مقدار پیش‌فرض تاریخ/زمان فعلی است.
فعال‌سازی تفسیر گریزهای ممیز وارونه (backslash escapes) در رشته‌های مشخص‌کننده قالب خروجی و ورودی.
رونوشت بخش‌هایی از ورودی قبل و بعد از یک تاریخ/زمان منطبق. توجه داشته باشید که تمام رخدادهای تاریخ/زمان در طول یک خط پردازش خواهند شد.
خالی کردن خطوطی که قابل تجزیه نیستند.
قالب‌بندی نتایج بر اساس LOCALE، این گزینه فقط بر نام ماه‌ها و روزهای هفته تأثیر می‌گذارد.
تفسیر تاریخ‌ها در stdin یا خط فرمان به عنوان تاریخ‌های متعلق به محلی‌سازی LOCALE؛ این گزینه فقط بر نام ماه‌ها و روزهای هفته تأثیر می‌گذارد زیرا قالب‌های ورودی باید به طور صریح مشخص شوند.
تفسیر تاریخ‌ها در stdin یا خط فرمان به عنوان تاریخ‌های متعلق به منطقه زمانی ZONE.
تبدیل تاریخ‌های چاپ‌شده در stdout به منطقه زمانی ZONE، پیش‌فرض: UTC.

مشخصات قالب‌بندی در dateutils مشابه ()strftime در استاندارد POSIX است.

با این حال، به دلیل پشتیبانی از طیف گسترده‌تری از گاه‌شمارها، dateutils باید قواعد متفاوتی را به کار گیرد.

مشخصات تاریخ:

%a  نام اختصاری روز هفته
%A  نام کامل روز هفته
%_a نام روز هفته کوتاه شده به یک نویسه (MTWRFAS)
%b  نام اختصاری ماه
%B  نام کامل ماه
%_b نام ماه کوتاه شده به یک نویسه (FGHJKMNQUVXZ)
%c  شمارش روز هفته در ماه (محدوده 00 تا 05)
%C  شمارش روز هفته در سال (محدوده 00 تا 53)
%d  روز ماه، ۲ رقمی (محدوده 00 تا 31)
%D  روز سال، ۳ رقمی (محدوده 000 تا 366)
%F  معادل %Y-%m-%d (قالب استاندارد ymd)
%g  سال تاریخ هفته ISO بدون قرن (محدوده 00 تا 99)
%G  سال تاریخ هفته ISO شامل قرن
%j  معادل %D
%m  ماه در گاه‌شمار فعلی (محدوده 00 تا 12)
%Q  فصل/سه‌ماهه سال (محدوده Q1 تا Q4)
%q  شماره سه‌ماهه (محدوده 01 تا 04)
%s  تعداد ثانیه‌ها از مبدأ زمان (Epoch)
%u  روز هفته به عدد (محدوده 01 تا 07، یکشنبه 07)
%U  شمارش هفته، روز اول هفته یکشنبه (محدوده 00 تا 53)
%V  شمارش هفته ISO، روز اول هفته دوشنبه (محدوده 01 تا 53)
%w  روز هفته به عدد (محدوده 00 تا 06، یکشنبه 00)
%W  شمارش هفته، روز اول هفته دوشنبه (محدوده 00 تا 53)
%y  سال بدون قرن (محدوده 00 تا 99)
%Y  سال شامل قرن
%_y سال کوتاه شده به یک رقم
%Z  اختلاف منطقه زمانی به ساعت و دقیقه (HH:MM) همراه با
    علامت پیشوند (+ برای اختلاف‌های شرق UTC، - برای اختلاف‌های
    غرب UTC)
%Od روز به اعداد رومی
%Om ماه به اعداد رومی
%Oy سال دو رقمی به اعداد رومی
%OY سال شامل قرن به اعداد رومی
%rs در سامانه‌های زمانی با مبدأ زمانی متفاوت از مبدأ یونیکس، این مشخصه
    تعداد ثانیه‌ها از آن مبدأ را مشخص می‌کند.
%rY در گاه‌شمارهایی که سال آن‌ها با سال‌های میلادی همزمان نیست،
    این مشخصه سال گاه‌شمار را انتخاب می‌کند.
%dth  روز ماه به عنوان یک عدد ترتیبی، 1st، 2nd، 3rd و غیره
%mth  ماه سال به عنوان یک عدد ترتیبی، 1st، 2nd، 3rd و غیره
%db روز کاری ماه (از آخرین روز کاری ماه قبل)
%dB تعداد روزهای کاری تا آخرین روز کاری این ماه

مشخصات زمان:

%H  ساعت در قالب ۲۴ ساعته، ۲ رقمی (محدوده 00 تا 23)
%I  ساعت در قالب ۱۲ ساعته، ۲ رقمی (محدوده 01 تا 12)
%M  دقیقه (محدوده 00 تا 59)
%N  نانوثانیه (محدوده 000000000 تا 999999999)
%p  رشته AM یا PM، ظهر PM و نیمه‌شب AM است
%P  مانند %p اما با حروف کوچک
%S  ثانیه (محدوده 00 تا 60، 60 برای ثانیه‌های کبیسه است)
%T  معادل %H:%M:%S

مشخصات عمومی:

%n  نویسه خط جدید
%t  نویسه تب
%%  نویسه لفظی %

تغییردهنده‌ها:

%O  تغییردهنده برای تبدیل اعداد ده‌دهی به اعداد رومی
%r  تغییردهنده برای تبدیل واحدها به واحدهای واقعی
%0  تغییردهنده برای فعال کردن پیشوندهای صفر
%SPC  تغییردهنده برای فعال کردن پیشوندهای فاصله
%-  تغییردهنده برای غیرفعال کردن کامل پیشوندها
th  پسوند، خواندن و چاپ اعداد ترتیبی
b   پسوند، در نظر گرفتن روزها به عنوان روزهای کاری

بر اساس طراحی، تاریخ‌های قبل از 1601-01-01 پشتیبانی نمی‌شوند.

برای تطابق، در اینجا فهرستی از شناسه‌های گاه‌شمار و رشته‌های قالب متناظر با آن‌ها آورده شده است:

ymd     %Y-%m-%d
ymcw    %Y-%m-%c-%w
ywd     %rY-W%V-%u
bizda   %Y-%m-%db
lilian     n/a
ldn        n/a
julian     n/a
jdn        n/a
matlab     n/a
mdn        n/a

این شناسه‌ها می‌توانند به عنوان رشته قالب خروجی استفاده شوند؛ افزون بر این، @code{lilian}/@code{ldn} و @code{julian}/@code{jdn} می‌توانند به عنوان رشته قالب ورودی نیز به کار روند.

برخی از ابزارها ("dateadd", "dateseq") به بازه‌های زمانی به عنوان ورودی نیاز دارند. بازه‌های زمانی عموماً با قالب‌های ورودی مشخص‌شده توسط "-i|--input-format" سازگار نیستند و (در حال حاضر) نحو ورودی آن‌ها ثابت است.

قالب کلی به صورت "+-Nunit" است که در آن "+" یا "-" علامت، "N" یک عدد، و "unit" واحد مورد نظر به شرح زیر است.

واحدها:

s  ثانیه
m  دقیقه
h  ساعت
rs ثانیه‌های واقعی، شامل گذارهای ثانیه کبیسه
d  روز
b  روز کاری
mo ماه
y  سال

به دلایل تاریخی، پیش‌تر "m" در زمینه ورودی‌های فقط-تاریخ به عنوان نشانگر ماه پذیرفته می‌شد. از نسخه 0.4.4 به بعد، دیگر این‌گونه نیست.

$ dateadd 2012-03-01 1d
2012-03-02
$
$ dateadd 2012-03-01 1mo
2012-04-01
$
$ dateadd 2012-03-31 1mo
2012-04-30
$
$ dateadd 2w2d <<EOF
2012-03-01
2012-03-02
2012-03-04
2012-03-08
2012-03-16
EOF
2012-03-17
2012-03-18
2012-03-20
2012-03-24
2012-04-01
$
$ dateadd 10:01:00 1h6m
11:07:00
$
$ dateadd 10:01:00 -1h6m
08:55:00
$
$ dateadd 10:01:00 3605s
11:01:05
$

نوشته شده توسط Sebastian Freundt <freundt@fresse.org>

گزارش باگ‌ها به: https://github.com/hroptatyr/dateutils/issues

مستندات کامل برای dateadd به عنوان یک راهنمای Texinfo نگهداری می‌شود. اگر برنامه‌های info و dateadd به درستی روی سامانه شما نصب شده باشند، دستور

info (dateutils)dateadd

باید دسترسی شما به راهنمای کامل را فراهم کند.

May 2024 dateutils 0.4.11