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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: صفحة الصنف <code>Time</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف: Ruby Timeالصنف <code>Time</code>...')
 
(مراجعة)
 
(3 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: صفحة الصنف <code>Time</code> في روبي}}</noinclude>
+
<noinclude>{{DISPLAYTITLE: الصنف <code>Time</code> في روبي}}</noinclude>
 
[[تصنيف: Ruby]]
 
[[تصنيف: Ruby]]
[[تصنيف: Ruby Time]]الصنف <code>Time</code> هو تجريد لمفهومي التاريخ والوقت. يتم تخزين <code>Time</code> داخليا كعدد الثواني (مع كسور) منذ  
+
[[تصنيف: Ruby Class]]
عصر
+
[[تصنيف: Ruby Time]]
1 يناير 1970 00:00 بالتوقيت العالمي. انظر أيضا الوحدة Date. يعامل الصنف<code>Time</code> توقيت جرينتش (GMT) <code>Time</code> و التوقيت العالمي الموحد (UTC)(UTC <code>Time</code>) على أنه متكافئان. توقيت جرينتش هو الطريقة الأقدم للإشارة إلى هذه الأوقات المرجعية، ولكنها لا تزال موجودة في أسماء الاستدعاءات على أنظمة POSIX.
+
الصنف <code>Time</code> هو تجريد لمفهومي التاريخ والوقت. يتم تخزين <code>Time</code> داخليا كعدد الثواني (مع كسورها) منذ [https://ar.wikipedia.org/wiki/%D8%AA%D9%88%D9%82%D9%8A%D8%AA_%D9%8A%D9%88%D9%86%D9%83%D8%B3 توقيت يونيكس] (1 يناير 1970 00:00 بالتوقيت العالمي). انظر أيضًا الوحدة <code>[[Ruby/Date|Date]]</code> لمزيد من المعلومات.
  
يمكن أن يكون لجميع الأوقات كسور. انتبه لهذا الأمر عند مقارنة الأوقات مع بعضها البعض - فالأوقات التي تبدو متساوية عند عرضها، قد تكون مختلفة عند المقارنة.
+
يعامِل الصنف <code>Time</code> توقيت جرينتش (GMT، اختصار للعبارة Greenwich Mean Time)  والتوقيت العالمي الموحد (UTC، اختصار للعبارة Universal Time Coordinated) على أنهما متكافئان. توقيت جرينتش هو الطريقة الأقدم للإشارة إلى هذه الأوقات المرجعية، ولا تزال موجودة في أسماء الاستدعاءات على أنظمة POSIX.
  
منذ روبي 1.9.2، يستخدم تطبيق ا<code>Time</code> عددا صحيحا من النوع signed 63 bit أو Bignum أو <code>[[Ruby/Rational|Rational]]</code>. العدد الصحيح يمثل عدد النانوثواني منذ
+
يمكن أن يكون لجميع الأوقات كسور. انتبه لهذا الأمر عند مقارنة الأوقات مع بعضها البعض؛ فالأوقات التي تبدو متساوية عند عرضها، قد تكون مختلفة عند المقارنة.
عصر
 
والتي يمكن أن تمثل 1823-11-12 إلى 2116-02-20. عند استخدام Bignum أو <code>[[Ruby/Rational|Rational]]</code> (قبل 1823، وبعد 2116 ، بالنانوثانية) ، يعمل الصنف <code>Time</code> بشكل أبطأ مقارنة باستخدام عدد صحيح.
 
  
أمثلة:
+
منذ روبي 1.9.2، يستخدم الصنف <code>Time</code> عددًا صحيحًا ذا إشارة بحجم 63 بت أو عددًا من النوع <code>Bignum</code> أو <code>[[Ruby/Rational|Rational]]</code>. العدد الصحيح يمثل عدد النانوثواني منذ بدء [https://ar.wikipedia.org/wiki/%D8%AA%D9%88%D9%82%D9%8A%D8%AA_%D9%8A%D9%88%D9%86%D9%83%D8%B3 توقيت يونيكس]، والتي يمكن أن تمثل ‎1823-11-12 بالقيمة ‎2116-02-20. عند استخدام <code>Bignum</code> أو <code>[[Ruby/Rational|Rational]]</code> (قبل 1823، وبعد 2116، بالنانوثانية) ، يعمل الصنف <code>Time</code> بشكل أبطأ مقارنة باستخدام الأعداد الصحيحة.
<code>[[Ruby//class-Time-label-Examples|¶]]</code> <code>[[Ruby//top|]]</code>
 
  
تم تنفيذ كل الأمثلة الموجودة في صفحات التوابع باستخدام المنطقة الزمنية EST بتوقيت جرينتش -5.
+
== الأمثلة ==
 +
كل الأمثلة الموجودة في صفحات التوابع تعمل باستخدام المنطقة الزمنية EST (التوقيت الشرقي القياسي [Eastern Standard Time]) والتي تساوي GMT-5 بتوقيت غرينتش.
  
إنشاء توقيت جديد <code>Time</code>
+
== إنشاء توقيت جديد ==
<code>[[Ruby//class-Time-label-Creating+a+new+Time+instance|]]</code> <code>[[Ruby//top|]]</code>
+
يمكنك إنشاء توقيت جديد (نسخة من الصنف <code>Time</code>) عبر التابع <code>[[Ruby/Time/new|new]]</code>، إذ سيستخدم الوقت الحالي في النظام. التابع <code>[[Ruby/Time/now|now]]</code> هو اسم بديل للمتغير <code>this</code>. يمكنك أيضًا تمرير أجزاء من الوقت إلى <code>[[Ruby/Time/new|new]]</code>، مثل السنة والشهر والدقيقة وما إلى ذلك. عندما تريد إنشاء توقيت بهذا التابع، فيجب أن تمرر السنة على الأقل. إذا مررت السنة وحدها، فسيتم تعيين الوقت الافتراضي لبقية القيم عند الشهر يناير/كانون الثاني من بداية ذلك العام على الساعة 00:00:00 بتوقيت المنطقة الزمنية الحالية للنظام.
  
يمكنك إنشاء توقيت جديد (نسخة من <code>Time</code>) عبر التابع <code>[[Ruby/Time/new|::new]]</code>. حيث سيستخدم الوقت الحالي في النظام. <code>[[Ruby/Time/now|::now]]</code> هو مرادف للمتغير this. يمكنك أيضًا تمرير أجزاء من الوقت إلى <code>[[Ruby/Time/new|::new]]</code>، مثل السنة والشهر والدقيقة وما إلى ذلك. عندما تريد إنشاء توقيت بهذا التابع، فيجب أن تمرر السنة على الأقل. إذا مررت السنة وحدها، فسيتم تعيين الوقت الافتراضي عند فاتح كانون الثاني/يناير من ذلك العام على الساعة 00:00:00 بتوقيت المنطقة الزمنية الحالية للنظام إليك بعض الأمثلة:
+
إليك بعض الأمثلة:<syntaxhighlight lang="ruby">Time.new(2002)        #=> 2002-01-01 00:00:00 -0500
<syntaxhighlight lang="ruby">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)    #=> 2002-10-01 00:00:00 -0500
 
Time.new(2002, 10, 31) #=> 2002-10-31 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‎</syntaxhighlight>  
+
Time.new(2002, 10, 31, 2, 2, 2, "+02:00") #=> 2002-10-31 02:02:02 +0200‎</syntaxhighlight>يمكنك أيضًا استخدام التوابع <code>[[Ruby/Time/gm|gm]]</code> و <code>[[Ruby/Time/local|local]]</code> و <code>[[Ruby/Time/utc|utc]]</code> لاعتماد المناطق الزمنية لغرينتش أو التوقيت المحلي أو التوقيت العالمي بدلًا من استخدام إعدادات النظام الحالي.
يمكنك أيضًا استخدام gm و local و <code>[[Ruby/Time/utc|utc]]</code> لاعتماد المناطق الزمنية غرينتش والتوقيت المحلي والتوقيت العالمي بدلاً من استخدام إعدادات النظام الحالي.
 
  
يمكنك أيضًا إنشاء توقيت جديد باستخدام <code>[[Ruby/Time/at|::at]]</code>، والذي تأخذ عدد الثواني (أو أعشار الثواني) منذ <code>[[Ruby/Unix_time|Unix Epoch]]</code>.
+
يمكنك أيضًا إنشاء توقيت جديد باستخدام <code>[[Ruby/Time/at|at]]</code>، والذي يأخذ عدد الثواني (أو أعشار الثواني) منذ بدء [https://ar.wikipedia.org/wiki/%D8%AA%D9%88%D9%82%D9%8A%D8%AA_%D9%8A%D9%88%D9%86%D9%83%D8%B3 توقيت يونيكس].<syntaxhighlight lang="ruby">Time.at(628232400) #=> 1989-11-28 00:00:00 -0500‎</syntaxhighlight>
<syntaxhighlight lang="ruby">Time.at(628232400) #=> 1989-11-28 00:00:00 -0500‎</syntaxhighlight>
 
العمل مع التوقيتات (نسخ <code>Time</code>)
 
<code>[[Ruby//class-Time-label-Working+with+an+instance+of+Time|¶]]</code> <code>[[Ruby//top|↑]]</code>
 
  
بمجرد أن يكون لديك توقيت (نسخة من <code>Time</code>)، هناك العديد من الأشياء التي يمكنك القيام بها. فيما يلي بعض الأمثلة. في جميع الأمثلة التالية، سنفترض أنك قمت بما يلي:
+
== العمل مع التوقيتات ==
<syntaxhighlight lang="ruby">t = Time.new(1993, 02, 24, 12, 0, 0, "+09:00")‎</syntaxhighlight>  
+
بمجرد أن تُنشئ توقيتًا (نسخة من الصنف <code>Time</code>)، فهناك العديد من الأشياء التي يمكنك القيام بها. فيما يلي بعض الأمثلة.
هل t يتوافق مع يوم الاثنين؟
+
 
<syntaxhighlight lang="ruby">t.monday? #=> false‎</syntaxhighlight>  
+
في جميع الأمثلة التالية، سنفترض أنك قمت بما يلي:<syntaxhighlight lang="ruby">t = Time.new(1993, 02, 24, 12, 0, 0, "+09:00")‎</syntaxhighlight>هل <code>t</code> يتوافق مع يوم الاثنين؟<syntaxhighlight lang="ruby">t.monday? #=> false‎</syntaxhighlight>أي عام هو هذا؟<syntaxhighlight lang="ruby">t.year #=> 1993‎</syntaxhighlight>هل <code>t</code> توقيت صيفي؟<syntaxhighlight lang="ruby">t.dst? #=> false‎</syntaxhighlight>ما هو اليوم الذي يوافق عامًا بعد <code>t</code>؟<syntaxhighlight lang="ruby">t + (60*60*24*365) #=> 1994-02-24 12:00:00 +0900‎</syntaxhighlight>كم عدد الثواني منذ [https://ar.wikipedia.org/wiki/%D8%AA%D9%88%D9%82%D9%8A%D8%AA_%D9%8A%D9%88%D9%86%D9%83%D8%B3 توقيت يونيكس] وحتى <code>t</code>؟<syntaxhighlight lang="ruby">t.to_i #=> 730522800‎</syntaxhighlight>يمكنك أيضًا القيام بالعمليات والوظائف العادية، مثل مقارنة توقيتين:<syntaxhighlight lang="ruby">t1 = Time.new(2010)
أي عام هو هذا؟
 
<syntaxhighlight lang="ruby">t.year #=> 1993‎</syntaxhighlight>  
 
kkهل t توقيت صيفي؟
 
<syntaxhighlight lang="ruby">t.dst? #=> false‎</syntaxhighlight>  
 
ما هو اليوم بعد عام من t؟
 
<syntaxhighlight lang="ruby">t + (60*60*24*365) #=> 1994-02-24 12:00:00 +0900‎</syntaxhighlight>  
 
كم عدد الثواني منذ [https://ar.wikipedia.org/wiki/%D8%AA%D9%88%D9%82%D9%8A%D8%AA_%D9%8A%D9%88%D9%86%D9%83%D8%B3 حقبة يونيكس] وحتى
 
<syntaxhighlight lang="ruby">t.to_i #=> 730522800‎</syntaxhighlight>  
 
يمكنك أيضا القيام بالعمليات والوظائف العادية، مثل مقارنة توقيتين.
 
<syntaxhighlight lang="ruby">t1 = Time.new(2010)
 
 
t2 = Time.new(2011)
 
t2 = Time.new(2011)
 
t1 == t2 #=> false
 
t1 == t2 #=> false
سطر 51: سطر 34:
 
t1 >  t2 #=> false
 
t1 >  t2 #=> false
 
Time.new(2010,10,31).between?(t1, t2) #=> true‎</syntaxhighlight>
 
Time.new(2010,10,31).between?(t1, t2) #=> true‎</syntaxhighlight>
==توابع الصنف العامة (Public Class Methods)==
+
==توابع الصنف العامة==
===[[Ruby/Time/at | التابع at]]===
+
===[[Ruby/Time/at|<code>at</code>]]===
ينشئ التابع <code>at</code> [[Ruby/Time|توقيت]]ا جديدًا <code>[[Ruby/Time|Time]]</code> مع القيم المعطاة من قِبل <code>time</code> (انظر فقرة البنية العامة)، أو عدد الثواني <code>seconds_with_frac</code>، أو عدد الثواني <code>seconds</code> والكسور <code>microseconds_with_frac</code> منذ [https://ar.wikipedia.org/wiki/%D8%AA%D9%88%D9%82%D9%8A%D8%AA_%D9%8A%D9%88%D9%86%D9%83%D8%B3 حقبة يونيكس]. يمكن أن يكون الوسيطان <code>seconds_with_frac</code> و <code>microseconds_with_frac</code> من النوع <code>[[Ruby/Integer|Integer]]</code> أو <code>[[Ruby/Float|Float]]</code> أو <code>[[Ruby/Rational|Rational]]</code> أو غيرها من الأصناف العددية (<code>[[Ruby/Numeric|Numeric]]</code>). تتيح الميزة غير المحمولة أن يكون الموضع (offset) سالبًا في بعض الأنظمة.
+
ينشئ توقيتًا جديدًا انطلاقًا من معلومات الوقت المٌمرَّرة إليه.
===[[Ruby/Time/gm | التابع gm]]===
+
===[[Ruby/Time/gm|<code>gm</code>]]===
ينشئ التابع <code>gm</code> [[Ruby/Time|توقيت]]ا <code>[[Ruby/Time|Time]]</code> استنادًا إلى القيم المعطاة، ويتم تفسيرها على أنها UTC (GMT). يجب تحديد السنة. القيم الأخرى تساوي افتراضيا الحد الأدنى لقيمة هذا الحقل (وقد تكون <code>nil</code> أو قد تُحذف). يمكن تحديد الشهر بعدد من 1 إلى 12، أو بأسماء الشهور الإنجليزية المكونة من ثلاثة أحرف. يتم تحديد الساعات من المجال (0..23). سيُطلق استثناء <code>[[Ruby/ArgumentError|ArgumentError]]</code> إذا كانت أي من تلك القيم خارج النطاق. سيقبل التابع أيضًا عشر وسائط في الطلب المُخرج من <code>[[Ruby/Time/to_a|#to_a]]</code>.
+
ينشئ توقيتًا جديدًا استنادًا إلى القيم المعطاة، ويتم تفسيرها وفق التوقيت العالمي الموحد UTC ‏(GMT).
===[[Ruby/Time/local | التابع local]]===
+
===[[Ruby/Time/local|<code>local</code>]]===
التابع <code>local</code> مشابه لـ <code>[[Ruby/Time/gm|::gm]]</code>، ولكنه يفسر القيم في إطار المنطقة الزمنية المحلية.
+
ينشئ توقيتًا جديدًا بشكل مشابه للتابع <code>[[Ruby/Time/gm|gm]]</code> باستثناء أنَّه يفسر القيم في إطار المنطقة الزمنية المحلية.
===[[Ruby/Time/mktime | التابع mktime]]===
+
===[[Ruby/Time/mktime|<code>mktime</code>]]===
التابع <code>mktime</code> مشابه لـ <code>[[Ruby/Time/gm|::gm]]</code>، ولكنه يفسر القيم في إطار المنطقة الزمنية المحلية. المنطقة الزمنية المحلية.
+
ينشئ توقيتًا جديدًا بشكل مشابه للتابع <code>[[Ruby/Time/gm|gm]]</code> باستثناء أنَّه يفسر القيم في إطار المنطقة الزمنية المحلية.
===[[Ruby/Time/new | التابع new]]===
+
===[[Ruby/Time/new|<code>new</code>]]===
يعيد التابع <code>new</code> [[Ruby/Time|توقيت]]ا جديدا <code>[[Ruby/Time|Time]]</code>.
+
ينشئ توقيتًا جديدًا. يتم ضبطه عند وقت النظام الحالي إذا لم يُمرر أي وسيط.
===[[Ruby/Time/now | التابع now]]===
+
===[[Ruby/Time/now|<code>now</code>]]===
يُنشئ التابع <code>now</code> [[Ruby/Time|توقيت]<code>[[Ruby/Time|Time]]</code> جديدا للوقت الحالي. هذا مثل استدعاء التابع <code>[[Ruby/Time/new|::new]]</code>X دون وسائط.
+
يُنشئ توقيتًا جديدًا من الوقت الحالي
===[[Ruby/Time/utc | التابع utc]]===
+
===[[Ruby/Time/utc|<code>utc</code>]]===
ينشئ التابع <code>utc</code> [[Ruby/Time|توقيت]]ا <code>[[Ruby/Time|Time]]</code> استنادًا إلى القيم المعطاة، ويتم تفسيره على أنه التوقيت العالمي الموحد UTC (GMT). يجب تحديد السنة. القيم الأخرى تُضبط افتراضيا عند الحد الأدنى لقيمة هذا الحقل (وقد تساوي <code>nil</code>، أو تُحذف). يمكن تحديد الأشهر بإعداد من 1 إلى 12، أو بثلاثة أحرف تمثل أسماء الشهور بالإنجليزية. يتم تحديد ساعات بعدد من (0..23). يطلق استثناء <code>[[Ruby/ArgumentError|ArgumentError]]</code> إذا كانت أي من تلك القيم خارج النطاق. سيقبل التابع أيضًا عشر وسائط في إخراج الطلب بواسطة <code>[[Ruby/Time/to_a|#to_a]]</code>.
+
ينشئ توقيتًا جديدًا استنادًا إلى القيم المعطاة، ويتم تفسيره وفق التوقيت العالمي الموحد UTC‏ (GMT).
===[[Ruby/Time/plus_operator | التابع +]]===
+
 
معامل الإضافة - يضيف بعض الثواني (ربما كسرية) إلى [[Ruby/Time|التوقيت]] <code>time</code> ويُعيد تلك القيمة [[Ruby/Time|توقيتات]] <code>[[Ruby/Time|Time]]</code> جديد.
+
== توابع النسخة العامة ==
===[[Ruby/Time/minus_operator | التابع -]]===
+
 
معامل الفرق - يُعيد فرق الثواني على شكل [[Ruby/Time|توقيت]] <code>[[Ruby/Float|Float]]</code> بين <code>time</code> و <code>other_time</code>، أو يطرح <code>numeric</code> ثانية من <code>time</code>.
+
===[[Ruby/Time/plus operator|<code>+</code>]]===
===[[Ruby/Time/compar_operator | التابع <=>]]===
+
يضيف عددًا من الثواني (ربما يكون عدد كسري) إلى <nowiki/>[[Ruby/Time|التوقيت]] المعطى، ثم يُعيد تلك القيمة<nowiki/>[[Ruby/Time|كتوقيت]] جديد.
معامل الموازنة - يقارن <code>time</code> مع <code>other_time</code> (انظر فقرة البنية العامة).
+
===[[Ruby/Time/minus operator|<code>-</code>]]===
===[[Ruby/Time/asctime | التابع asctime]]===
+
يُعيد الفرق بالثانية بين وقتين، أو يطرح عددًا يمثِّل الثواني من التوقيت المعطى.
يُعيد التابع <code>asctime</code> تمثيلا نصيا قانونيا لل[[Ruby/Time|توقيت]] <code>time</code>.
+
===[[Ruby/Time/compar operator|<code><=></code>]]===
===[[Ruby/Time/ctime | التابع ctime]]===
+
يوازن بين توقيتين.
يُعيد التابع <code>ctime</code> تمثيلا نصيا قانونيا لل[[Ruby/Time|توقيت]] <code>time</code>.
+
===[[Ruby/Time/asctime|<code>asctime</code>]]===
===[[Ruby/Time/day | التابع day]]===
+
يُعيد سلسلة نصية أساسية (canonical string) تحوي <nowiki/>توقيت الكائن <code>Time</code> الذي استدعي معه.
يستخلص التابع <code>day</code> من [[Ruby/Time|التوقيت]] رقم اليوم من الشهر (1..n) لـ <code>time</code>.
+
===[[Ruby/Time/ctime|<code>ctime</code>]]===
===[[Ruby/Time/dst-3F | التابع dst?‎]]===
+
يُعيد سلسلة نصية أساسية (canonical string) تحوي <nowiki/>توقيت الكائن <code>Time</code> الذي استدعي معه.
يُعيد التابع <code>dst?‎</code> القيمة <code>true</code> إن وقع <code>time</code> أثناء التوقيت الصيفي <code>[[Ruby/Time|Time]]</code> في المنطقة الزمنية الخاصة به.
+
===[[Ruby/Time/day|<code>day</code>]]===
===[[Ruby/Time/eql-3F | التابع eql?‎]]===
+
يستخلص من <nowiki/>التوقيت رقم اليوم من الشهر (1..n).
يُعيد <code>true</code> إذا كان كل من <code>time</code> و <code>other_time</code> (انظر فقرة البنية العامة) [[Ruby/Time|توقيت]] <code>[[Ruby/Time|Time]]</code>، وكان لهما نفس عدد الثواني وكسور الثواني.
+
===[[Ruby/Time/dst-3F|<code>dst?‎</code>]]===
===[[Ruby/Time/friday-3F | التابع friday?‎]]===
+
يتحقق إن وقع <nowiki/>التوقيت أثناء التوقيت الصيفي في منطقته الزمنية.
يُعيد التابع <code>friday?‎</code> القيمة <code>true</code> إن كان [[Ruby/Time|التوقيت]] <code>time</code> يمثل يوم الجمعة.
+
===[[Ruby/Time/eql-3F|<code>eql?‎</code>]]===
===[[Ruby/Time/getgm | التابع getgm]]===
+
يتحقق إذا كان توقيتان متساويين تمامًا.
يُعيد التابع <code>getgm</code> [[Ruby/Time|توقيت]]ا <code>[[Ruby/Time|Time]]</code> جديدا يمثل [[Ruby/Time|التوقيت]] الذي استُدعي معه <code>time</code> بالتوقيت العالمي الموحد (UTC).
+
===[[Ruby/Time/friday-3F|<code>friday?‎</code>]]===
===[[Ruby/Time/getlocal | التابع getlocal]]===
+
يتحقق إن كان <nowiki/>التوقيت يمثل يوم الجمعة.
يُعيد التابع <code>getlocal</code> [[Ruby/Time|توقيت]]ا <code>[[Ruby/Time|Time]]</code> جديدا يمثل [[Ruby/Time|التوقيت]] الذي استُدعي معه <code>time</code> بالتوقيت المحلي (باستخدام المنطقة الزمنية المحلية السارية لهذه العملية).
+
===[[Ruby/Time/getgm|<code>getgm</code>]]===
===[[Ruby/Time/getutc | التابع getutc]]===
+
يُعيد توقيتًا جديدًا يمثل <nowiki/>التوقيت الذي استُدعي معه بالتوقيت العالمي الموحد (UTC).
يُعيد التابع <code>getutc</code> [[Ruby/Time|توقيت]]ا <code>[[Ruby/Time|Time]]</code> جديدا يمثل [[Ruby/Time|التوقيت]] الذي استُدعي معه <code>time</code> بالتوقيت العالمي الموحد (UTC).
+
===[[Ruby/Time/getlocal|<code>getlocal</code>]]===
===[[Ruby/Time/gmt-3F | التابع gmt?‎]]===
+
يُعيد توقيتًا جديدًا يمثل <nowiki/>التوقيت الذي استُدعي معه بالتوقيت المحلي (باستخدام المنطقة الزمنية المحلية السارية لهذه العملية).
يُعيد التابع <code>gmt?‎</code> القيمة <code>true</code> إن كان [[Ruby/Time|التوقيت]] <code>time</code> يمثل وقتا وفق UTC (GMT).
+
===[[Ruby/Time/getutc|<code>getutc</code>]]===
===[[Ruby/Time/gmt_offset | التابع gmt_offset]]===
+
يُعيد توقيتًا جديدًا يمثل التوقيت الذي استُدعي معه بالتوقيت العالمي الموحد (UTC).
يُعيد التابع <code>gmt_offset</code> فرق الثواني بين المنطقة الزمنية لل[[Ruby/Time|توقيت]] <code>time</code> و UTC.
+
===[[Ruby/Time/gmt-3F|<code>gmt?‎</code>]]===
===[[Ruby/Time/gmtime | التابع gmtime]]===
+
يتحقق إن كان <nowiki/>التوقيت الذي استدعي معه ممثلًا بالتوقيت العالمي الموحد (UTC).
يحول التابع <code>gmtime</code> [[Ruby/Time|التوقيت]] <code>time</code> إلى التوقيت UTC (GMT) ، مع تعديل المتلقي (receiver).
+
===[[Ruby/Time/gmt offset|<code>gmt_offset</code>]]===
===[[Ruby/Time/gmtoff | التابع gmtoff]]===
+
يُعيد الفارق بين المنطقة الزمنية للتوقيت المعطى والتوقيت العالمي الموحد (UTC) بالثانية.
يُعيد التابع <code>gmtoff</code> فرق الثواني بين المنطقة الزمنية لل[[Ruby/Time|توقيت]] <code>time</code> و التوقيت العالمي الموحد (UTC).
+
===[[Ruby/Time/gmtime|<code>gmtime</code>]]===
===[[Ruby/Time/hash | التابع hash]]===
+
يحول التوقيت الذي استُدعي معه إلى التوقيت العالمي الموحد (UTC).
يُعيدرمز تجزئة (hash code) لل[[Ruby/Time|توقيت]] <code>[[Ruby/Time|Time]]</code>.
+
===[[Ruby/Time/gmtoff|<code>gmtoff</code>]]===
===[[Ruby/Time/hour | التابع hour]]===
+
يُعيد الفارق بين المنطقة الزمنية للتوقيت الذي استُدعي معه والتوقيت العالمي الموحد (UTC) بالثانية.
يُستخلص التابع <code>hour</code> من [[Ruby/Time|التوقيت]] رقم الساعة من اليوم (0..23) لـ <code>time</code>.
+
===[[Ruby/Time/hash|<code>hash</code>]]===
===[[Ruby/Time/inspect | التابع inspect]]===
+
يُعيد القيمة hash للتوقيت الذي استدعي معه.
يُعيد التابع <code>inspect</code> [[Ruby/String|سلسلة نصية]] تمثل [[Ruby/Time|التوقيت]] <code>time</code>. هذا التابع مكافئ لاستدعاء التابع <code>[[Ruby/Time/strftime|strftime]]</code> مع سلسلة التنسيق المناسبة.
+
===[[Ruby/Time/hour|<code>hour</code>]]===
===[[Ruby/Time/isdst | التابع isdst]]===
+
يُستخلص من التوقيت رقم الساعة لليوم.
يُعيد التابع <code>isdst</code> القيمة <code>true</code> إن وقع [[Ruby/Time|التوقيت]] <code>time</code> أثناء التوقيت الصيفي<code>[[Ruby/Time|Time]]</code> في المنطقة الزمنية الخاصة به.
+
===[[Ruby/Time/inspect|<code>inspect</code>]]===
===[[Ruby/Time/localtime | التابع localtime]]===
+
يُعيد [[Ruby/String|سلسلة نصية]] تمثل التوقيت الذي استدعي معه. 
يحول التابع <code>localtime</code> [[Ruby/Time|التوقيت]] <code>time</code> إلى التوقيت المحلي (باستخدام المنطقة الزمنية المحلية السارية لهذه العملية) مع تعديل المستقبِل (receiver).
+
===[[Ruby/Time/isdst|<code>isdst</code>]]===
===[[Ruby/Time/mday | التابع mday]]===
+
يتحقق إن وقع التوقيت الذي استُدعي معه أثناء التوقيت الصيفي في منطقته الزمنية.
يستخلص التابع <code>mday</code> من [[Ruby/Time|التوقيت]] رقم اليوم من الشهر (1..n) لـ <code>time</code>.
+
===[[Ruby/Time/localtime|<code>localtime</code>]]===
===[[Ruby/Time/min | التابع min]]===
+
يحول التوقيت الذي استُدعي معه إلى التوقيت المحلي (باستخدام المنطقة الزمنية المحلية السارية لهذه العملية).
يستخلص التابع <code>min</code> من [[Ruby/Time|التوقيت]] رقم الدقيقة من الساعة (0..59) لـ <code>time</code>.
+
===[[Ruby/Time/mday|<code>mday</code>]]===
===[[Ruby/Time/mon | التابع mon]]===
+
يستخلص من التوقيت الذي استدعي معه رقم اليوم من الشهر.
يستخلص التابع <code>mon</code> من [[Ruby/Time|التوقيت]] رقم الشهر من السنة (1..12) لـ <code>time</code>.
+
===[[Ruby/Time/min|<code>min</code>]]===
===[[Ruby/Time/monday-3F | التابع monday?‎]]===
+
يستخلص من التوقيت الذي استدعي معه رقم الدقيقة من الساعة.
يُعيد التابع <code>monday?‎</code> القيمة <code>true</code> إن كان [[Ruby/Time|التوقيت]] <code>time</code> يمثل يوم الاثنين.
+
===[[Ruby/Time/mon|<code>mon</code>]]===
===[[Ruby/Time/month | التابع month]]===
+
يستخلص من التوقيت الذي استدعي معه رقم الشهر من السنة.
يستخلص التابع <code>month</code> من [[Ruby/Time|التوقيت]] رقم الشهر من السنة (1..12) لـ <code>time</code>.
+
===[[Ruby/Time/monday-3F|<code>monday?‎</code>]]===
===[[Ruby/Time/nsec | التابع nsec]]===
+
يتحقق إن كان <nowiki/>التوقيت يمثل يوم الاثنين.
يُعيد التابع <code>nsec</code> عدد النانوثواني المقابل لل[[Ruby/Time|توقيت]] <code>time</code>.
+
===[[Ruby/Time/month|<code>month</code>]]===
===[[Ruby/Time/round | التابع round]]===
+
يستخلص من التوقيت الذي استدعي معه رقم الشهر من السنة.
يُقرّب التابع <code>round</code> الثواني الفرعية وفق دقة معينة من المنازل العشرية (0 هو القيمة الافتراضية). تقوم بيُعيد التابع <code>round</code> [[Ruby/Time|توقيت]]ا <code>[[Ruby/Time|Time]]</code> جديدًا. يجب أن يكون الوسيط <code>ndigits</code> (انظر فقرة البنية العامة) 0 أو عددًا صحيحًا أو موجبًا.
+
===[[Ruby/Time/nsec|<code>nsec</code>]]===
===[[Ruby/Time/saturday-3F | التابع saturday?‎]]===
+
يُعيد النانو ثانية المقابل للتوقيت الذي مر منذ [https://ar.wikipedia.org/wiki/%D8%AA%D9%88%D9%82%D9%8A%D8%AA_%D9%8A%D9%88%D9%86%D9%83%D8%B3 توقيت يونيكس].
يُعيد التابع <code>saturday?‎</code> القيمة <code>true</code> إن كان [[Ruby/Time|التوقيت]] <code>time</code> يمثل يوم السبت.
+
===[[Ruby/Time/round|<code>round</code>]]===
===[[Ruby/Time/sec | التابع sec]]===
+
يُقرّب الأجزاء العشرية من الثواني وفق دقة معينة من المنازل العشرية للتوقيت الذي استدعي معه.
يستخلص التابع <code>sec</code> من [[Ruby/Time|التوقيت]] رقم الثانية في الدقيقة (0..60) لـ <code>time</code>.
+
===[[Ruby/Time/saturday-3F|<code>saturday?‎</code>]]===
===[[Ruby/Time/strftime | التابع strftime]]===
+
يتحقق إن كان <nowiki/>التوقيت يمثل يوم السبت.
يُنسق التابع <code>strftime</code> [[Ruby/Time|التوقيت]] <code>time</code> وفقًا للموجّهات (directives) الموجودة في سلسلة التنسيق المعطاة.
+
===[[Ruby/Time/sec|<code>sec</code>]]===
===[[Ruby/Time/subsec | التابع subsec]]===
+
يستخلص من التوقيت رقم الثانية في الدقيقة.
يُعيد التابع <code>subsec</code> الجزء العشري من [[Ruby/Time|التوقيت]] لـ <code>time</code>.
+
===[[Ruby/Time/strftime|<code>strftime</code>]]===
===[[Ruby/Time/succ | التابع succ]]===
+
يُنسق التوقيت الذي استدعي معه وفقًا للموجّهات (directives) الموجودة في سلسلة التنسيق المُمرَّرة إليه.
يُعيد التابع <code>succ</code> [[Ruby/Time|توقيت]]ا <code>[[Ruby/Time|Time]]</code> جديدًا، مع إضافة ثانية واحدة على [[Ruby/Time|التوقيت]] الذي استُدعي معه <code>time</code>. التابع <code>[[Ruby/Time/succ|#succ]]</code> صار متجاوزا منذ روبي 1.9.2 بالنسبة لل[[Ruby/Time|توقيتات]] الكسرية.
+
===[[Ruby/Time/subsec|<code>subsec</code>]]===
===[[Ruby/Time/sunday-3F | التابع sunday?‎]]===
+
يُعيد الجزء العشري للثانية من التوقيت الذي استدعي معه.
يُعيد التابع <code>sunday?‎</code> القيمة <code>true</code> إن كان [[Ruby/Time|التوقيت]] <code>time</code> يمثل يوم الأحد.
+
===[[Ruby/Time/succ|<code>succ</code>]]===
===[[Ruby/Time/thursday-3F | التابع thursday?‎]]===
+
يُعيد توقيتا جديدًا، مع إضافة ثانية واحدة على التوقيت الذي استُدعي معه.
يُعيد التابع <code>thursday?‎</code> القيمة <code>true</code> إن كان [[Ruby/Time|التوقيت]] <code>time</code> يمثل يوم الخميس.
+
===[[Ruby/Time/sunday-3F|<code>sunday?‎</code>]]===
===[[Ruby/Time/to_a | التابع to_a]]===
+
يتحقق إن كان <nowiki/>التوقيت يمثل يوم الأحد.
يُعيد التابع <code>to_a</code> [[Ruby/Array|مصفوفة]] عشارية تضم قيم [[Ruby/Time|التوقيت]] <code>array</code> للـ <code>time</code>X:
+
===[[Ruby/Time/thursday-3F|<code>thursday?‎</code>]]===
===[[Ruby/Time/to_f | التابع to_f]]===
+
يتحقق إن كان التوقيت يمثل يوم الخميس.
يُعيد التابع <code>to_f</code> قيمة [[Ruby/Time|التوقيت]] <code>time</code> كعدد عشري من الثواني منذ [https://ar.wikipedia.org/wiki/%D8%AA%D9%88%D9%82%D9%8A%D8%AA_%D9%8A%D9%88%D9%86%D9%83%D8%B3 حقبة يونيكس].
+
===[[Ruby/Time/to a|<code>to_a</code>]]===
===[[Ruby/Time/to_i | التابع to_i]]===
+
يحول التوقيت الذي استدعي معه إلى <nowiki/>[[Ruby/Array|مصفوفة]].
يُعيد التابع <code>to_i</code> قيمة [[Ruby/Time|التوقيت]] <code>time</code> كعدد صحيح يمثل الثواني التي مرت منذ [https://ar.wikipedia.org/wiki/%D8%AA%D9%88%D9%82%D9%8A%D8%AA_%D9%8A%D9%88%D9%86%D9%83%D8%B3 حقبة يونيكس].
+
===[[Ruby/Time/to f|<code>to_f</code>]]===
===[[Ruby/Time/to_r | التابع to_r]]===
+
يحول قيمة التوقيت المعطى إلى عدد عشري يمثل عدد الثواني التي مرَّت منذ [https://ar.wikipedia.org/wiki/%D8%AA%D9%88%D9%82%D9%8A%D8%AA_%D9%8A%D9%88%D9%86%D9%83%D8%B3 توقيت يونكس].
يُعيد التابع <code>to_r</code> قيمة [[Ruby/Time|التوقيت]] <code>time</code> ك[[Ruby/Rational|عدد جذري]] يمثل عدد الثواني التي مرت منذ [https://ar.wikipedia.org/wiki/%D8%AA%D9%88%D9%82%D9%8A%D8%AA_%D9%8A%D9%88%D9%86%D9%83%D8%B3 حقبة يونيكس].
+
===[[Ruby/Time/to i|<code>to_i</code>]]===
===[[Ruby/Time/to_s | التابع to_s]]===
+
يحول قيمة التوقيت المعطى إلى <nowiki/>[[Ruby/Integer|عدد صحيح]] يمثل الثواني التي مرت منذ [https://ar.wikipedia.org/wiki/%D8%AA%D9%88%D9%82%D9%8A%D8%AA_%D9%8A%D9%88%D9%86%D9%83%D8%B3 توقيت يونكس].
يُعيد التابع <code>to_s</code> [[Ruby/String|سلسلة نصية]] تمثل [[Ruby/Time|التوقيت]] <code>time</code>. وهو مكافئ لاستدعاء التابع <code>[[Ruby/Time/strftime|strftime]]</code> مع سلسلة التنسيق المناسبة.
+
===[[Ruby/Time/to r|<code>to_r</code>]]===
===[[Ruby/Time/tuesday-3F | التابع tuesday?‎]]===
+
يحول قيمة التوقيت المعطى إلى <nowiki/>[[Ruby/Rational|عدد جذري]] يمثل عدد الثواني التي مرت منذ [https://ar.wikipedia.org/wiki/%D8%AA%D9%88%D9%82%D9%8A%D8%AA_%D9%8A%D9%88%D9%86%D9%83%D8%B3 توقيت يونكس].
يُعيد التابع <code>tuesday?‎</code> القيمة <code>true</code> إن كان [[Ruby/Time|التوقيت]] <code>time</code> يمثل يوم الثلاثاء.
+
===[[Ruby/Time/to s|<code>to_s</code>]]===
===[[Ruby/Time/tv_nsec | التابع tv_nsec]]===
+
يحول التوقيت المعطى إلى <nowiki/>[[Ruby/String|سلسلة نصية]]. 
يُعيد التابع <code>tv_nsec</code> عدد النانوثواني المقابلة لل[[Ruby/Time|توقيت]] <code>time</code>.
+
===[[Ruby/Time/tuesday-3F|<code>tuesday?‎</code>]]===
===[[Ruby/Time/tv_sec | التابع tv_sec]]===
+
يتحقق إن كان <nowiki/>التوقيت يمثل يوم الخميس.
يُعيد التابع <code>tv_sec</code> قيمة [[Ruby/Time|التوقيت]] <code>time</code> كعدد صحيح يمثل عدد الثواني التي مرت منذ [https://ar.wikipedia.org/wiki/%D8%AA%D9%88%D9%82%D9%8A%D8%AA_%D9%8A%D9%88%D9%86%D9%83%D8%B3 حقبة يونيكس].
+
===[[Ruby/Time/tv nsec|<code>tv_nsec</code>]]===
===[[Ruby/Time/tv_usec | التابع tv_usec]]===
+
يُعيد عدد النانوثواني المقابلة للتوقيت المعطى التي مرت منذ [https://ar.wikipedia.org/wiki/%D8%AA%D9%88%D9%82%D9%8A%D8%AA_%D9%8A%D9%88%D9%86%D9%83%D8%B3 توقيت يونيكس].
يُعيد التابع <code>tv_usec</code> عدد الميكروثواني المقابلة لل[[Ruby/Time|توقيت]] <code>time</code>.
+
===[[Ruby/Time/tv sec|<code>tv_sec</code>]]===
===[[Ruby/Time/usec | التابع usec]]===
+
يُعيد القيمة المقابلة للتوقيت التي تمثل عدد الثواني التي مرت منذ [https://ar.wikipedia.org/wiki/%D8%AA%D9%88%D9%82%D9%8A%D8%AA_%D9%8A%D9%88%D9%86%D9%83%D8%B3 توقيت يونيكس].
يُعيد التابع <code>usec</code> عدد الميكروثواني المقابل لل[[Ruby/Time|توقيت]] <code>time</code>.
+
===[[Ruby/Time/tv usec|<code>tv_usec</code>]]===
===[[Ruby/Time/utc | التابع utc]]===
+
يُعيد المقابلة للتوقيت التي تمثل عدد الميكروثواني التي مرت منذ [https://ar.wikipedia.org/wiki/%D8%AA%D9%88%D9%82%D9%8A%D8%AA_%D9%8A%D9%88%D9%86%D9%83%D8%B3 توقيت يونيكس].
<a href="#method-i-utc-3F"> </a>
+
===[[Ruby/Time/usec|<code>usec</code>]]===
===[[Ruby/Time/utc-3F | التابع utc?‎]]===
+
يُعيد القيمة المقابلة للتوقيت التي تمثل عدد الميكروثواني التي مرت منذ [https://ar.wikipedia.org/wiki/%D8%AA%D9%88%D9%82%D9%8A%D8%AA_%D9%8A%D9%88%D9%86%D9%83%D8%B3 توقيت يونيكس].
يُعيد التابع <code>utc?‎</code> القيمة <code>true</code> إن كان [[Ruby/Time|التوقيت]] <code>time</code> يمثل يوم نظاق توقيت في التوقيت العالمي الموحد UTC (GMT).
+
===[[Ruby/Time/utc|<code>utc</code>]]===
===[[Ruby/Time/utc_offset | التابع utc_offset]]===
+
يحول التوقيت إلى التوقيت العالمي الموحد (UTC).
يُعيد التابع <code>utc_offset</code> فرق الثواني بين المنطقة الزمنية لل[[Ruby/Time|توقيت]] <code>time</code> والتوقيت العالمي الموحد UTC.
+
===[[Ruby/Time/utc-3F|<code>utc?‎</code>]]===
===[[Ruby/Time/wday | التابع wday]]===
+
يتحقق إن كان التوقيت الذي استُدعي معه يمثل توقيتًا في النطاق العالمي الموحد UTC‏ (GMT).
يُعيد التابع <code>wday</code> عددا صحيحا يمثل يوم الأسبوع ، 0..6 ، حيث يوم الأحد له القيمة 0.
+
===[[Ruby/Time/utc offset|<code>utc_offset</code>]]===
===[[Ruby/Time/wednesday-3F | التابع wednesday?‎]]===
+
يُعيد الفارق بين المنطقة الزمنية للتوقيت والتوقيت العالمي الموحد UTC بالثانية.
يُعيد التابع <code>wednesday?‎</code> القيمة <code>true</code> إن كان [[Ruby/Time|التوقيت]] <code>time</code> يمثل يوم الأربعاء.
+
===[[Ruby/Time/wday|<code>wday</code>]]===
===[[Ruby/Time/yday | التابع yday]]===
+
يُعيد عددًا صحيحًا يمثل رقم اليوم في الأسبوع للتوقيت الذي استدعي معه.  
يُعيد التابع <code>yday</code> عددا صحيحا يمثل يوم من السنة ، 1..366.
+
===[[Ruby/Time/wednesday-3F|<code>wednesday?‎</code>]]===
===[[Ruby/Time/year | التابع year]]===
+
يتحقق إن كان <nowiki/>التوقيت يمثل يوم الأربعاء.
يُعيد التابع <code>year</code> السنة من [[Ruby/Time|التوقيت]]<code>time</code> (بما في ذلك القرن).
+
===[[Ruby/Time/yday|<code>yday</code>]]===
===[[Ruby/Time/zone | التابع zone]]===
+
يُعيد عددًا صحيحًا يمثل رقم اليوم في السنة للتوقيت الذي استدعي معه.
يعيد التابع <code>zone</code> اسم المنطقة الزمنية المستخدمة في [[Ruby/Time|التوقيت]] <code>time</code>. بدءًا من روبي 1.8، تُعاد [[Ruby/String|السلسلة النصية]] "UTC" بدلاً من "GMT" لتمثيل عن التوقيت العالمي الموحد UTC.
+
===[[Ruby/Time/year|<code>year</code>]]===
 +
يستخلص من التوقيت الذي استُدعي معه قيمة السنة (بما في ذلك القرن).
 +
===[[Ruby/Time/zone|<code>zone</code>]]===
 +
يعيد اسم المنطقة الزمنية المستخدمة في <nowiki/>[[Ruby/Time|التوقيت]] الذي استدعي معه.
 
==مصادر==
 
==مصادر==
*[http://ruby-doc.org/core-2.5.1/Time.html قسم  الصنف Time في توثيق روبي الرسمي.]
+
*[http://ruby-doc.org/core-2.5.1/Time.html صفحة الصنف Time في توثيق روبي الرسمي.]

المراجعة الحالية بتاريخ 17:16، 7 ديسمبر 2018

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

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

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

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

الأمثلة

كل الأمثلة الموجودة في صفحات التوابع تعمل باستخدام المنطقة الزمنية EST (التوقيت الشرقي القياسي [Eastern Standard Time]) والتي تساوي GMT-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‎

توابع الصنف العامة

at

ينشئ توقيتًا جديدًا انطلاقًا من معلومات الوقت المٌمرَّرة إليه.

gm

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

local

ينشئ توقيتًا جديدًا بشكل مشابه للتابع gm باستثناء أنَّه يفسر القيم في إطار المنطقة الزمنية المحلية.

mktime

ينشئ توقيتًا جديدًا بشكل مشابه للتابع gm باستثناء أنَّه يفسر القيم في إطار المنطقة الزمنية المحلية.

new

ينشئ توقيتًا جديدًا. يتم ضبطه عند وقت النظام الحالي إذا لم يُمرر أي وسيط.

now

يُنشئ توقيتًا جديدًا من الوقت الحالي

utc

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

توابع النسخة العامة

+

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

-

يُعيد الفرق بالثانية بين وقتين، أو يطرح عددًا يمثِّل الثواني من التوقيت المعطى.

<=>

يوازن بين توقيتين.

asctime

يُعيد سلسلة نصية أساسية (canonical string) تحوي توقيت الكائن Time الذي استدعي معه.

ctime

يُعيد سلسلة نصية أساسية (canonical string) تحوي توقيت الكائن Time الذي استدعي معه.

day

يستخلص من التوقيت رقم اليوم من الشهر (1..n).

dst?‎

يتحقق إن وقع التوقيت أثناء التوقيت الصيفي في منطقته الزمنية.

eql?‎

يتحقق إذا كان توقيتان متساويين تمامًا.

friday?‎

يتحقق إن كان التوقيت يمثل يوم الجمعة.

getgm

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

getlocal

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

getutc

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

gmt?‎

يتحقق إن كان التوقيت الذي استدعي معه ممثلًا بالتوقيت العالمي الموحد (UTC).

gmt_offset

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

gmtime

يحول التوقيت الذي استُدعي معه إلى التوقيت العالمي الموحد (UTC).

gmtoff

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

hash

يُعيد القيمة hash للتوقيت الذي استدعي معه.

hour

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

inspect

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

isdst

يتحقق إن وقع التوقيت الذي استُدعي معه أثناء التوقيت الصيفي في منطقته الزمنية.

localtime

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

mday

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

min

يستخلص من التوقيت الذي استدعي معه رقم الدقيقة من الساعة.

mon

يستخلص من التوقيت الذي استدعي معه رقم الشهر من السنة.

monday?‎

يتحقق إن كان التوقيت يمثل يوم الاثنين.

month

يستخلص من التوقيت الذي استدعي معه رقم الشهر من السنة.

nsec

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

round

يُقرّب الأجزاء العشرية من الثواني وفق دقة معينة من المنازل العشرية للتوقيت الذي استدعي معه.

saturday?‎

يتحقق إن كان التوقيت يمثل يوم السبت.

sec

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

strftime

يُنسق التوقيت الذي استدعي معه وفقًا للموجّهات (directives) الموجودة في سلسلة التنسيق المُمرَّرة إليه.

subsec

يُعيد الجزء العشري للثانية من التوقيت الذي استدعي معه.

succ

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

sunday?‎

يتحقق إن كان التوقيت يمثل يوم الأحد.

thursday?‎

يتحقق إن كان التوقيت يمثل يوم الخميس.

to_a

يحول التوقيت الذي استدعي معه إلى مصفوفة.

to_f

يحول قيمة التوقيت المعطى إلى عدد عشري يمثل عدد الثواني التي مرَّت منذ توقيت يونكس.

to_i

يحول قيمة التوقيت المعطى إلى عدد صحيح يمثل الثواني التي مرت منذ توقيت يونكس.

to_r

يحول قيمة التوقيت المعطى إلى عدد جذري يمثل عدد الثواني التي مرت منذ توقيت يونكس.

to_s

يحول التوقيت المعطى إلى سلسلة نصية

tuesday?‎

يتحقق إن كان التوقيت يمثل يوم الخميس.

tv_nsec

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

tv_sec

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

tv_usec

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

usec

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

utc

يحول التوقيت إلى التوقيت العالمي الموحد (UTC)‏.

utc?‎

يتحقق إن كان التوقيت الذي استُدعي معه يمثل توقيتًا في النطاق العالمي الموحد UTC‏ (GMT).

utc_offset

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

wday

يُعيد عددًا صحيحًا يمثل رقم اليوم في الأسبوع للتوقيت الذي استدعي معه.

wednesday?‎

يتحقق إن كان التوقيت يمثل يوم الأربعاء.

yday

يُعيد عددًا صحيحًا يمثل رقم اليوم في السنة للتوقيت الذي استدعي معه.

year

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

zone

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

مصادر