صفحة الصنف 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 اسم المنطقة الزمنية المستخدمة في التوقيت.