صفحة الصنف Time في روبي

من موسوعة حسوب

الصنف Time هو تجريد لمفهومي التاريخ والوقت. يتم تخزين Time داخليا كعدد الثواني (مع كسورها) منذ حقبة يونيكس (1 يناير 1970 00:00 بالتوقيت العالمي). انظر أيضا الوحدة Date لمزيد من المعلومات.

يعامِل الصنفTime توقيت جرينتش (GMT) و التوقيت العالمي الموحد (UTC) على أنهما متكافئان. توقيت جرينتش هو الطريقة الأقدم للإشارة إلى هذه الأوقات المرجعية، ولا تزال موجودة في أسماء الاستدعاءات على أنظمة POSIX.

يمكن أن يكون لجميع الأوقات كسور. انتبه لهذا الأمر عند مقارنة الأوقات مع بعضها البعض - فالأوقات التي تبدو متساوية عند عرضها، قد تكون مختلفة عند المقارنة.

منذ روبي 1.9.2، يستخدم Time عددا صحيحا من النوع signed 63 bit أو Bignum أو Rational. العدد الصحيح يمثل عدد النانوثواني منذ حقبة يونيكس، والتي يمكن أن تمثل 1823-11-12 كـ 2116-02-20. عند استخدام Bignum أو Rational (قبل 1823، وبعد 2116، بالنانوثانية) ، يعمل الصنف Time بشكل أبطأ مقارنة بالوضع عند استخدام الأعداد الصحيحة.

الأمثلة

كل الأمثلة الموجودة في صفحات التوابع تعمل باستخدام المنطقة الزمنية EST بتوقيت جرينتش -5.

إنشاء توقيت جديد

يمكنك إنشاء توقيت جديد (نسخة من Time) عبر التابع new. حيث سيستخدم الوقت الحالي في النظام. now هو مرادف للمتغير this. يمكنك أيضًا تمرير أجزاء من الوقت إلى new، مثل السنة والشهر والدقيقة وما إلى ذلك. عندما تريد إنشاء توقيت بهذا التابع، فيجب أن تمرر السنة على الأقل. إذا مررت السنة وحدها، فسيتم تعيين الوقت الافتراضي لبقية القيم عند فاتح يناير/كانون الثاني من ذلك العام على الساعة 00:00:00 بتوقيت المنطقة الزمنية الحالية للنظام.

إليك بعض الأمثلة:

Time.new(2002)         #=> 2002-01-01 00:00:00 -0500
Time.new(2002, 10)     #=> 2002-10-01 00:00:00 -0500
Time.new(2002, 10, 31) #=> 2002-10-31 00:00:00 -0500
Time.new(2002, 10, 31, 2, 2, 2, "+02:00") #=> 2002-10-31 02:02:02 +0200‎

يمكنك أيضًا استخدام التوابع gm و local و utc لاعتماد المناطق الزمنية لغرينتش أو التوقيت المحلي أو التوقيت العالمي بدلاً من استخدام إعدادات النظام الحالي. يمكنك أيضًا إنشاء توقيت جديد باستخدام at، والذي يأخذ عدد الثواني (أو أعشار الثواني) منذ حقبة يونيكس.

Time.at(628232400) #=> 1989-11-28 00:00:00 -0500‎

العمل مع التوقيتات

بمجرد أن تُنشئ توقيتًا (نسخة من Time)، فهناك العديد من الأشياء التي يمكنك القيام بها. فيما يلي بعض الأمثلة.

في جميع الأمثلة التالية، سنفترض أنك قمت بما يلي:

t = Time.new(1993, 02, 24, 12, 0, 0, "+09:00")

هل t يتوافق مع يوم الاثنين؟

t.monday? #=> false‎

أي عام هو هذا؟

t.year #=> 1993‎

هل t توقيت صيفي؟

t.dst? #=> false‎

ما هو اليوم الذي يوافق عاما بعد t؟

t + (60*60*24*365) #=> 1994-02-24 12:00:00 +0900‎

كم عدد الثواني منذ حقبة يونيكس وحتى t؟

t.to_i #=> 730522800‎

يمكنك أيضا القيام بالعمليات والوظائف العادية، مثل مقارنة توقيتين.

t1 = Time.new(2010)
t2 = Time.new(2011)
t1 == t2 #=> false
t1 == t1 #=> true
t1 <  t2 #=> true
t1 >  t2 #=> false
Time.new(2010,10,31).between?(t1, t2) #=> true‎

توابع الصنف العامة (Public Class Methods)

التابع at

ينشئ التابع at توقيتا جديدًا.

التابع gm

ينشئ التابع gm توقيتا استنادًا إلى القيم المعطاة،

التابع local

التابع local مشابه لـ gm، ولكنه يفسر القيم في إطار المنطقة الزمنية المحلية.

التابع mktime

التابع mktime مشابه لـ gm، ولكنه يفسر القيم في إطار المنطقة الزمنية المحلية.

التابع new

يعيد التابع new توقيتا جديدا.

التابع now

يُنشئ التابع now توقيتا جديدا للوقت الحالي.

التابع utc

ينشئ التابع utc توقيتا استنادًا إلى القيم المعطاة،

توابع النسخة العامة (Public Instance Methods)

التابع +

معامل الإضافة - يضيف بعض الثواني (ربما كسرية) إلى التوقيت

التابع -

معامل الفرق - يُعيد فرق الثواني على شكل عدد عشري Float

التابع <=>

معامل الموازنة - يقارن توقيتين

التابع asctime

يُعيد التابع asctime تمثيلا نصيا قانونيا للتوقيت.

التابع ctime

يُعيد التابع ctime تمثيلا نصيا قانونيا للتوقيت.

التابع day

يستخلص التابع day رقم اليوم من الشهر.

التابع dst?‎

يُعيد التابع dst?‎ القيمة true إن وقع time أثناء التوقيت الصيفي

التابع eql?‎

يتحقق من تساوي توقيتين.

التابع friday?‎

يُعيد التابع friday?‎ القيمة true إن كان التوقيت يمثل يوم الجمعة.

التابع getgm

يُعيد التابع getgm توقيتا Time جديدا يمثل التوقيت الذي استُدعي معه بالتوقيت العالمي الموحد (UTC).

التابع getlocal

يُعيد التابع getlocal توقيتا جديدا يمثل التوقيت الذي استُدعي معه بالتوقيت المحلي

التابع getutc

يُعيد التابع getutc توقيتا جديدا يمثل التوقيت الذي استُدعي معه بالتوقيت العالمي الموحد (UTC).

التابع gmt?‎

يُعيد التابع gmt?‎ القيمة true إن كان التوقيت ضمن نطاق التوقيت العالمي الموحد (UTC).

التابع gmt_offset

يُعيد التابع gmt_offset فرق الثواني بين المنطقة الزمنية للتوقيت والتوقيت العالمي الموحد UTC.

التابع gmtime

يحول التابع gmtime التوقيت إلى التوقيت العالمي الموحد

التابع gmtoff

يُعيد التابع gmtoff فرق الثواني بين المنطقة الزمنية للتوقيت و التوقيت العالمي الموحد (UTC).

التابع hash

يُعيدرمز تجزئة (hash code) للتوقيت.

التابع hour

يُستخلص التابع hour من التوقيت رقم الساعة من اليوم

التابع inspect

يُعيد التابع inspect سلسلة نصية تمثل التوقيت.

التابع isdst

يُعيد التابع isdst القيمة true إن وقع التوقيت أثناء التوقيت الصيفي

التابع localtime

يحول التابع localtime التوقيت إلى التوقيت المحلي

التابع mday

يستخلص التابع mday من التوقيت رقم اليوم من الشهر

التابع min

يستخلص التابع min من التوقيت رقم الدقيقة من الساعة

التابع mon

يستخلص التابع mon من التوقيت رقم الشهر من السنة

التابع monday?‎

يُعيد التابع monday?‎ القيمة true إن كان التوقيت time يمثل يوم الاثنين.

التابع month

يستخلص التابع month من التوقيت رقم الشهر من السنة

التابع nsec

يُعيد التابع nsec عدد النانوثواني المقابل للتوقيت.

التابع round

يُقرّب التابع round الثواني الكسرية وفق دقة معينة.

التابع saturday?‎

يُعيد التابع saturday?‎ القيمة true إن كان التوقيت يمثل يوم السبت.

التابع sec

يستخلص التابع sec من التوقيت رقم الثانية في الدقيقة

التابع strftime

يُنسق التابع strftime التوقيت وفقًا للموجّهات (directives) الموجودة في سلسلة التنسيق المعطاة.

التابع subsec

يُعيد التابع subsec الجزء العشري من التوقيت.

التابع succ

يُعيد التابع succ توقيتا جديدًا، مع إضافة ثانية واحدة على التوقيت الذي استُدعي معه

التابع sunday?‎

يُعيد التابع sunday?‎ القيمة true إن كان التوقيت يمثل يوم الأحد.

التابع thursday?‎

يُعيد التابع thursday?‎ القيمة true إن كان التوقيت يمثل يوم الخميس.

التابع to_a

يُعيد التابع to_a مصفوفة عشارية تضم قيم التوقيت

التابع to_f

يُعيد التابع to_f قيمة التوقيت كعدد عشري يمثل عدد الثواني التي مرت منذ حقبة يونيكس.

التابع to_i

يُعيد التابع to_i قيمة التوقيت كعدد صحيح يمثل عدد الثواني التي مرت منذ حقبة يونيكس.

التابع to_r

يُعيد التابع to_r قيمة التوقيت كعدد جذري يمثل عدد الثواني التي مرت منذ حقبة يونيكس.

التابع to_s

يُعيد التابع to_s سلسلة نصية تمثل التوقيت

التابع tuesday?‎

يُعيد التابع tuesday?‎ القيمة true إن كان التوقيت يمثل يوم الثلاثاء.

التابع tv_nsec

يُعيد التابع tv_nsec عدد النانوثواني المقابلة للتوقيت التي مرت منذ حقبة يونيكس.

التابع tv_sec

يُعيد التابع tv_sec القيمة المقابلة للتوقيت التي تمثل عدد الثواني التي مرت منذ حقبة يونيكس.

التابع tv_usec

يُعيد التابع tv_usec المقابلة للتوقيت التي تمثل عدد الميكروثواني التي مرت منذ حقبة يونيكس.

التابع usec

يُعيد التابع usec القيمة المقابلة للتوقيت التي تمثل عدد الميكروثواني التي مرت منذ حقبة يونيكس.

التابع utc

ينشئ التابع utc توقيتا جديدا استنادًا إلى القيم المعطاة، ويتم تفسيره وفق التوقيت العالمي الموحد UTC‏ (GMT).

التابع utc?‎

يُعيد التابع utc?‎ القيمة true إن كان التوقيت ضمن نطاق التوقيت العالمي الموحد

التابع utc_offset

يُعيد التابع utc_offset فرق الثواني بين المنطقة الزمنية للتوقيت والتوقيت العالمي الموحد UTC.

التابع wday

يُعيد التابع wday عددا صحيحا يمثل رقم اليوم في الأسبوع

التابع wednesday?‎

يُعيد التابع wednesday?‎ القيمة true إن كان التوقيت يمثل يوم الأربعاء.

التابع yday

يُعيد التابع yday عددا صحيحا يمثل رقم اليوم في السنة ، 1..366.

التابع year

يستخلص التابع year من التوقيت الذي استُدعي معه قيمة السنة (بما في ذلك القرن).

التابع zone

يعيد التابع zone اسم المنطقة الزمنية المستخدمة في التوقيت.

مصادر