DATESEQ(1) User Commands DATESEQ(1)

dateseq - تولید دنباله‌ای از تاریخ/زمان‌ها از FIRST تا LAST، به صورت اختیاری در گام‌های مشخص

dateseq [گزینه]... FIRST [[گام_افزایشی] LAST]

تولید یک دنباله از تاریخ/زمان‌ها از FIRST تا LAST، به صورت اختیاری با گام‌های INCREMENT (که به‌طور پیش‌فرض `1d' است).

اگر LAST حذف شود، در صورتی که FIRST یک تاریخ/زمان باشد پیش‌فرض `now' (اکنون)، اگر FIRST فقط تاریخ باشد `today' (امروز)، و اگر FIRST فقط زمان باشد `time' خواهد بود.

مقادیر FIRST و LAST همیشه شامل می‌شوند و هیچ تاریخ/زمانی قبل از FIRST و هیچ تاریخ/زمانی بعد از LAST چاپ نخواهد شد.

در صورتی که FIRST تازه‌تر از LAST باشد، باید مقادیر منفی برای INCREMENT تعیین گردد.

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

چاپ راهنما و خروج
چاپ نسخه و خروج
عدم نمایش پیام‌های مربوط به خطاهای تجزیه‌کننده تاریخ/زمان و مدت‌زمان، و اصلاحات انجام‌شده. حالت پیش‌فرض این است که یک هشدار یا مقدار اصلاح‌شده چاپ شده و کد خطای 2 بازگردانده شود.
قالب خروجی. این می‌تواند یک رشته مشخص‌کننده فرمت (مشابه FMT در ()strftime) یا نام یک گاه‌شماری باشد.
قالب ورودی، می‌تواند چندین بار استفاده شود. هر تاریخ/زمان به ترتیب به تجزیه‌کننده‌های فرمت ورودی ارسال می‌شود؛ اگر یک تاریخ/زمان بتواند با یک رشته مشخص‌کننده فرمت ورودی معین با موفقیت خوانده شود، آن مقدار استفاده خواهد شد.
برای ورودی‌های ناکامل، از DT به‌عنوان جایگزین پشتیبان جهت پر کردن فیلدهای مفقود استفاده می‌شود. همچنین برای مشخص‌کننده‌های قالب مبهم، جهت تعیین موقعیت بازه آن‌ها روی خط زمان مطلق به کار می‌رود. باید یک تاریخ/زمان در قالب ISO8601 باشد. در صورت حذف، تاریخ/زمان فعلی پیش‌فرض خواهد بود.
فعال کردن تفسیر کاراکترهای اسکیپ بک‌اسلش در رشته‌های مشخص‌کننده فرمت خروجی و ورودی.
قالب‌بندی نتایج بر اساس LOCALE؛ این گزینه تنها بر نام ماه‌ها و روزهای هفته تأثیر می‌گذارد.
تفسیر تاریخ‌های موجود در ورودی استاندارد یا خط فرمان به‌عنوان ورودی‌های برگرفته از LOCALE؛ این گزینه تنها بر نام ماه‌ها و روزهای هفته تأثیر دارد، چرا که فرمت‌های ورودی باید صریحاً مشخص شوند.
نادیده گرفتن روزهای هفته مشخص‌شده توسط STRING. مقدار STRING می‌تواند یک روز هفته منفرد باشد (مانند Mon، Tue و غیره)، و برای نادیده گرفتن چندین روز، گزینه --skip می‌تواند چند بار استفاده شود. همچنین STRING می‌تواند فهرستی از نام‌های روزهای هفته جداشده با کاما، یا `ss' برای رد کردن کامل آخر هفته‌ها (شنبه + یکشنبه) باشد. علاوه بر این، STRING می‌تواند شامل بازه‌های تاریخی مانند `mo-we' برای دوشنبه تا چهارشنبه باشد.
گام افزایشی جایگزین برای زمانی که به تاریخی برخورد شود که طبق --skip باید نادیده گرفته شود. این گام تا زمانی که به یک تاریخ رد‌نشده برسد اعمال خواهد شد. حالت خاص `0' (پیش‌فرض) این افزایش جایگزین را غیرفعال می‌کند. یک مقدار مفید می‌تواند `1d' برای دنباله‌های صعودی و `-1d' برای دنباله‌های نزولی باشد، بنابراین اگر با یک تاریخ نادیده‌گرفته‌شده مواجه شود، از تاریخ رد‌نشده بعدی/قبلی استفاده خواهد شد.
محاسبه مقدار شروع از LAST با استفاده از INCREMENT. این گزینه تنها زمانی تأثیر دارد که INCREMENT مقسوم‌علیه فاصله بین FIRST و LAST نباشد. در چنین حالتی، یک FIRST جایگزین با کسر متوالی INCREMENT از LAST تا زمانی که به FIRST برسد یا از آن عبور کند، محاسبه خواهد شد.

مشخصات قالب در 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 در سامانه‌های زمانی با مبدأ متفاوت از Epoch یونیکس،
    تعداد ثانیه‌ها را از آن مبدأ انتخاب می‌کند.
%rY در گاه‌شماری‌هایی که سال‌های آن‌ها با تقویم گریگوری همخوانی
    ندارد، سال تقویم مربوطه را انتخاب می‌کند.
%dth  روز ماه به‌صورت عدد ترتیبی (1st، 2nd، 3rd و غیره)
%mth  ماه سال به‌صورت عدد ترتیبی
%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  یک نویسه تب
%%  نویسه واقعی %

اصلاح‌کننده‌ها (Modifiers):

%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 به بعد، دیگر این‌گونه نیست.

$ dateseq 2012-02-01 2012-03-01
2012-02-01
2012-02-02
2012-02-03
2012-02-04
2012-02-05
2012-02-06
2012-02-07
2012-02-08
2012-02-09
2012-02-10
2012-02-11
2012-02-12
2012-02-13
2012-02-14
2012-02-15
2012-02-16
2012-02-17
2012-02-18
2012-02-19
2012-02-20
2012-02-21
2012-02-22
2012-02-23
2012-02-24
2012-02-25
2012-02-26
2012-02-27
2012-02-28
2012-02-29
2012-03-01
$
$ dateseq 2001-02-03 2001-03-03 --skip sat -f "%F %a"
2001-02-04 Sun
2001-02-05 Mon
2001-02-06 Tue
2001-02-07 Wed
2001-02-08 Thu
2001-02-09 Fri
2001-02-11 Sun
2001-02-12 Mon
2001-02-13 Tue
2001-02-14 Wed
2001-02-15 Thu
2001-02-16 Fri
2001-02-18 Sun
2001-02-19 Mon
2001-02-20 Tue
2001-02-21 Wed
2001-02-22 Thu
2001-02-23 Fri
2001-02-25 Sun
2001-02-26 Mon
2001-02-27 Tue
2001-02-28 Wed
2001-03-01 Thu
2001-03-02 Fri
$
$ dateseq --compute-from-last 2001-02-03 1 2001-03-03 --skip sat -f "%F %a"
2001-02-04 Sun
2001-02-05 Mon
2001-02-06 Tue
2001-02-07 Wed
2001-02-08 Thu
2001-02-09 Fri
2001-02-11 Sun
2001-02-12 Mon
2001-02-13 Tue
2001-02-14 Wed
2001-02-15 Thu
2001-02-16 Fri
2001-02-18 Sun
2001-02-19 Mon
2001-02-20 Tue
2001-02-21 Wed
2001-02-22 Thu
2001-02-23 Fri
2001-02-25 Sun
2001-02-26 Mon
2001-02-27 Tue
2001-02-28 Wed
2001-03-01 Thu
2001-03-02 Fri
$
$ dateseq 2001-02-03 3 2001-03-03 --skip sat,fri -f "%F %a"
2001-02-06 Tue
2001-02-12 Mon
2001-02-15 Thu
2001-02-18 Sun
2001-02-21 Wed
2001-02-27 Tue
$
$ dateseq --compute-from-last 2001-02-03 3 2001-03-03 --skip sat,fri -f "%F %a"
2001-02-04 Sun
2001-02-07 Wed
2001-02-13 Tue
2001-02-19 Mon
2001-02-22 Thu
2001-02-25 Sun
2001-02-28 Wed
$
$ dateseq 2001-02-05 4 2001-03-04 -f "%F %a"
2001-02-05 Mon
2001-02-09 Fri
2001-02-13 Tue
2001-02-17 Sat
2001-02-21 Wed
2001-02-25 Sun
2001-03-01 Thu
$
$ dateseq --compute-from-last 2001-02-05 4 2001-03-04 -f "%F %a"
2001-02-08 Thu
2001-02-12 Mon
2001-02-16 Fri
2001-02-20 Tue
2001-02-24 Sat
2001-02-28 Wed
2001-03-04 Sun
$
$ dateseq --alt-inc 1d 2001-02-03 3 2001-03-03 --skip sat,fri -f "%F %a"
2001-02-04 Sun
2001-02-07 Wed
2001-02-11 Sun
2001-02-14 Wed
2001-02-18 Sun
2001-02-21 Wed
2001-02-25 Sun
2001-02-28 Wed
$
$ dateseq --compute-from-last --alt-inc 1d 2001-02-03 3 2001-03-03 --skip sat,fri -f "%F %a"
2001-02-04 Sun
2001-02-07 Wed
2001-02-11 Sun
2001-02-14 Wed
2001-02-18 Sun
2001-02-21 Wed
2001-02-25 Sun
2001-02-28 Wed
$
$ dateseq 2001-01-01 2d 2001-01-08
2001-01-01
2001-01-03
2001-01-05
2001-01-07
$
$ dateseq --compute-from-last 2001-01-01 2d 2001-01-08
2001-01-02
2001-01-04
2001-01-06
2001-01-08
$
$ dateseq 2001-01-08 -2d 2001-01-01
2001-01-08
2001-01-06
2001-01-04
2001-01-02
$
$ dateseq --compute-from-last 2001-01-08 -2d 2001-01-01
2001-01-07
2001-01-05
2001-01-03
2001-01-01
$
$ dateseq 10:00:00 12m 11:20:00
10:00:00
10:12:00
10:24:00
10:36:00
10:48:00
11:00:00
11:12:00
$
$ dateseq --compute-from-last 10:00:00 12m 11:20:00
10:08:00
10:20:00
10:32:00
10:44:00
10:56:00
11:08:00
11:20:00
$
$ dateseq 11:20:00 -12m 10:00:00
11:20:00
11:08:00
10:56:00
10:44:00
10:32:00
10:20:00
10:08:00
$
$ dateseq --compute-from-last 11:20:00 -12m 10:00:00
11:12:00
11:00:00
10:48:00
10:36:00
10:24:00
10:12:00
10:00:00
$

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

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

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

info (dateutils)dateseq

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

May 2024 dateutils 0.4.11