الفرق بين المراجعتين ل"Ruby/Time"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: صفحة الصنف <code>Time</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف: Ruby Timeالصنف <code>Time</code>...')
(لا فرق)

مراجعة 19:48، 7 نوفمبر 2018

الصنف Time هو تجريد لمفهومي التاريخ والوقت. يتم تخزين Time داخليا كعدد الثواني (مع كسور) منذ عصر 1 يناير 1970 00:00 بالتوقيت العالمي. انظر أيضا الوحدة Date. يعامل الصنفTime توقيت جرينتش (GMT) Time و التوقيت العالمي الموحد (UTC)(UTC Time) على أنه متكافئان. توقيت جرينتش هو الطريقة الأقدم للإشارة إلى هذه الأوقات المرجعية، ولكنها لا تزال موجودة في أسماء الاستدعاءات على أنظمة POSIX.

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

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

أمثلة:

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

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

يمكنك إنشاء توقيت جديد (نسخة من 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، والذي تأخذ عدد الثواني (أو أعشار الثواني) منذ Unix Epoch.

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

العمل مع التوقيتات (نسخ Time)

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

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

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

t.monday? #=> false‎

أي عام هو هذا؟

t.year #=> 1993‎

kkهل 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 توقيتا جديدًا Time مع القيم المعطاة من قِبل time (انظر فقرة البنية العامة)، أو عدد الثواني seconds_with_frac، أو عدد الثواني seconds والكسور microseconds_with_frac منذ حقبة يونيكس. يمكن أن يكون الوسيطان seconds_with_frac و microseconds_with_frac من النوع Integer أو Float أو Rational أو غيرها من الأصناف العددية (Numeric). تتيح الميزة غير المحمولة أن يكون الموضع (offset) سالبًا في بعض الأنظمة.

التابع gm

ينشئ التابع gm توقيتا Time استنادًا إلى القيم المعطاة، ويتم تفسيرها على أنها UTC (GMT). يجب تحديد السنة. القيم الأخرى تساوي افتراضيا الحد الأدنى لقيمة هذا الحقل (وقد تكون nil أو قد تُحذف). يمكن تحديد الشهر بعدد من 1 إلى 12، أو بأسماء الشهور الإنجليزية المكونة من ثلاثة أحرف. يتم تحديد الساعات من المجال (0..23). سيُطلق استثناء ArgumentError إذا كانت أي من تلك القيم خارج النطاق. سيقبل التابع أيضًا عشر وسائط في الطلب المُخرج من #to_a.

التابع local

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

التابع mktime

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

التابع new

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

التابع now

يُنشئ التابع now توقيتا Time جديدا للوقت الحالي. هذا مثل استدعاء التابع ::newX دون وسائط.

التابع utc

ينشئ التابع utc توقيتا Time استنادًا إلى القيم المعطاة، ويتم تفسيره على أنه التوقيت العالمي الموحد UTC (GMT). يجب تحديد السنة. القيم الأخرى تُضبط افتراضيا عند الحد الأدنى لقيمة هذا الحقل (وقد تساوي nil، أو تُحذف). يمكن تحديد الأشهر بإعداد من 1 إلى 12، أو بثلاثة أحرف تمثل أسماء الشهور بالإنجليزية. يتم تحديد ساعات بعدد من (0..23). يطلق استثناء ArgumentError إذا كانت أي من تلك القيم خارج النطاق. سيقبل التابع أيضًا عشر وسائط في إخراج الطلب بواسطة #to_a.

التابع +

معامل الإضافة - يضيف بعض الثواني (ربما كسرية) إلى التوقيت time ويُعيد تلك القيمة توقيتات Time جديد.

التابع -

معامل الفرق - يُعيد فرق الثواني على شكل توقيت Float بين time و other_time، أو يطرح numeric ثانية من time.

التابع <=>

معامل الموازنة - يقارن time مع other_time (انظر فقرة البنية العامة).

التابع asctime

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

التابع ctime

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

التابع day

يستخلص التابع day من التوقيت رقم اليوم من الشهر (1..n) لـ time.

التابع dst?‎

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

التابع eql?‎

يُعيد true إذا كان كل من time و other_time (انظر فقرة البنية العامة) توقيت Time، وكان لهما نفس عدد الثواني وكسور الثواني.

التابع friday?‎

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

التابع getgm

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

التابع getlocal

يُعيد التابع getlocal توقيتا Time جديدا يمثل التوقيت الذي استُدعي معه time بالتوقيت المحلي (باستخدام المنطقة الزمنية المحلية السارية لهذه العملية).

التابع getutc

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

التابع gmt?‎

يُعيد التابع gmt?‎ القيمة true إن كان التوقيت time يمثل وقتا وفق UTC (GMT).

التابع gmt_offset

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

التابع gmtime

يحول التابع gmtime التوقيت time إلى التوقيت UTC (GMT) ، مع تعديل المتلقي (receiver).

التابع gmtoff

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

التابع hash

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

التابع hour

يُستخلص التابع hour من التوقيت رقم الساعة من اليوم (0..23) لـ time.

التابع inspect

يُعيد التابع inspect سلسلة نصية تمثل التوقيت time. هذا التابع مكافئ لاستدعاء التابع strftime مع سلسلة التنسيق المناسبة.

التابع isdst

يُعيد التابع isdst القيمة true إن وقع التوقيت time أثناء التوقيت الصيفيTime في المنطقة الزمنية الخاصة به.

التابع localtime

يحول التابع localtime التوقيت time إلى التوقيت المحلي (باستخدام المنطقة الزمنية المحلية السارية لهذه العملية) مع تعديل المستقبِل (receiver).

التابع mday

يستخلص التابع mday من التوقيت رقم اليوم من الشهر (1..n) لـ time.

التابع min

يستخلص التابع min من التوقيت رقم الدقيقة من الساعة (0..59) لـ time.

التابع mon

يستخلص التابع mon من التوقيت رقم الشهر من السنة (1..12) لـ time.

التابع monday?‎

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

التابع month

يستخلص التابع month من التوقيت رقم الشهر من السنة (1..12) لـ time.

التابع nsec

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

التابع round

يُقرّب التابع round الثواني الفرعية وفق دقة معينة من المنازل العشرية (0 هو القيمة الافتراضية). تقوم بيُعيد التابع round توقيتا Time جديدًا. يجب أن يكون الوسيط ndigits (انظر فقرة البنية العامة) 0 أو عددًا صحيحًا أو موجبًا.

التابع saturday?‎

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

التابع sec

يستخلص التابع sec من التوقيت رقم الثانية في الدقيقة (0..60) لـ time.

التابع strftime

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

التابع subsec

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

التابع succ

يُعيد التابع succ توقيتا Time جديدًا، مع إضافة ثانية واحدة على التوقيت الذي استُدعي معه time. التابع #succ صار متجاوزا منذ روبي 1.9.2 بالنسبة للتوقيتات الكسرية.

التابع sunday?‎

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

التابع thursday?‎

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

التابع to_a

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

التابع to_f

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

التابع to_i

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

التابع to_r

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

التابع to_s

يُعيد التابع to_s سلسلة نصية تمثل التوقيت time. وهو مكافئ لاستدعاء التابع strftime مع سلسلة التنسيق المناسبة.

التابع tuesday?‎

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

التابع tv_nsec

يُعيد التابع tv_nsec عدد النانوثواني المقابلة للتوقيت time.

التابع tv_sec

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

التابع tv_usec

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

التابع usec

يُعيد التابع usec عدد الميكروثواني المقابل للتوقيت time.

التابع utc

<a href="#method-i-utc-3F"> </a>

التابع utc?‎

يُعيد التابع utc?‎ القيمة true إن كان التوقيت time يمثل يوم نظاق توقيت في التوقيت العالمي الموحد UTC (GMT).

التابع utc_offset

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

التابع wday

يُعيد التابع wday عددا صحيحا يمثل يوم الأسبوع ، 0..6 ، حيث يوم الأحد له القيمة 0.

التابع wednesday?‎

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

التابع yday

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

التابع year

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

التابع zone

يعيد التابع zone اسم المنطقة الزمنية المستخدمة في التوقيت time. بدءًا من روبي 1.8، تُعاد السلسلة النصية "UTC" بدلاً من "GMT" لتمثيل عن التوقيت العالمي الموحد UTC.

مصادر