التاريخ و الوقت الحسابات

كائن تاريختستخدم الكائن والأساليب ذات الصلة إلى القيام بتقويم وساعة المهام عام، مثل معالجة مقارنة التواريخ وحساب الوقت المنقضي.

إعداد تاريخ إلى التاريخ الحالي

عندما تقوم بإنشاء مثيل من كائن تاريخ، يحتوي على القيمة تمثل فورية معينة في الوقت، دقيقة إلى مللي ثانية. ثم يمكن قراءة أو تغيير هذا التاريخ و الوقت قيمة.

يوضح المثال التالي كيف إلى الحصول على التاريخ الحالي وعرضه بالتنسيق mm/dd/yy.

// Create a date object. Because no arguments are
// passed, the date object contains the current date and
// time (to the millisecond).
var dt : Date = new Date();

// Determine and display the month, day, and year.
// The getMonth method uses a zero offset for
// the month number.
var month : Number = dt.getMonth()+1;
var day : Number = dt.getDate();
var year : Number = dt.getFullYear();

print (month + "/" + day + "/" + year);

إعداد خاص التاريخ

في المثال التالي، بتاريخ محدد هو التي تم تمريرها إلى المنشئ.

// Create a date object for a specific date.
var dt : Date = new Date('8/24/2009');

Jscriptهو مرنة نسبيا حول تنسيق التاريخ. يسمح لمتغيرات مثل كـ 8-24-2009، 24 أغسطس، 2009، و 24 2009 أغسطس.

يمكنك أيضا تحديد فترة، كـ هو مبين في الأمثلة التالية.

// Create a date object for a specific date and time.
// The time format is hours:minutes:seconds.
var dtA : Date = new Date('8/24/2009 14:52:10');

// Create a date object for the same date and time as in
// the previous example.
// The parameters are:
// year, month, day, hours, minutes, seconds.
// August is month 7 because January is month 0.
var dtB : Date = new Date(2009, 7, 24, 14, 52, 10);

إضافة و طرح أيام

يستخدم مثال سابق getMonth getDate وأساليب getFullYear إلى الحصول على أجزاء التاريخ. يمكنك لالتعيين مكافئة من وظائف التعيين إلى قم بتغيير القيمة في Dateالكائن.

يوضح المثال التالي كيف يمكنك تعيين التاريخ إلى يوم السابق التاريخ. يحصل على تاريخ يوم الحالي ويوم من شهر، وثم تعيين يوم إلى يوم واحد سابقا باستخدام setDate أسلوب.

// Get the current day's date and day of month.
var myDate : Date = new Date();
var dayOfMonth : Number = myDate.getDate();

// Reset myDate to one day earlier.
myDate.setDate(dayOfMonth - 1);

Jscriptزيادات إلى التالي الشهر أو السنة كما هو مطلوب. على سبيل المثال، إذا كان التاريخ الحالي هو 28th من شهر يناير وقمت بإضافة 7 أيام، ويقوم بتعيين التاريخ بشكل صحيح إلى 4 فبراير. يلي مثال يضيف أسبوع واحد إلى التاريخ الحالي. مثال مسح الوقت من التاريخ أيضا.

var myDate : Date = new Date();
myDate.setDate(myDate.getDate() + 7);

// Clear the time.
myDate.setHours(0, 0, 0, 0);

العمل مع أشهر وسنوات

التالي مثال تحتوي على تكرار حلقي يخرج التواريخ بدءاً من شهر واحد من التاريخ الحالي. زيادة الأشهر إلى السنة التالية بشكل صحيح.

var currentDate : Date = new Date();

for(var index : int = 1; index <= 12; index++)
{
    var myDate : Date = new Date();
    myDate.setMonth(currentDate.getMonth() + index);

    print ("Month+" + index + ": " + myDate);
}

يلي مثال يحصل على التاريخ الذي تم سنة واحدة قبل التاريخ الحالي.

var myDate : Date = new Date();
myDate.setFullYear (myDate.getFullYear() - 1);

يلي مثال يحصل على يوم أول من شهر الذي يلي شهر الحالي. زيادة شهر و ثم تعيين يوم شهر إلى 1.

function GetFirstOfNextMonth() : Date
{
    var myDate : Date = new Date();
    myDate.setMonth(myDate.getMonth() + 1);
    myDate.setDate(1);

    return myDate;
}

يحدد المثال التالي لليوم أخير من شهر الحالي. للقيام بذلك، فإنه يحدد اﻷول شهر التالي، وثم يطرح يوم.

// Determine the last day of the current month.
// The GetFirstOfNextMonth() function is in the previous example.
var myDate : Date = GetFirstOfNextMonth();
myDate.setDate (myDate.getDate() - 1);

العمل مع أيام أسبوع

getDay أسلوب(not to be confused معgetDate) إرجاع القيمة بين 0 و 6 للإشارة إلى يوم من أيام أسبوع. يوم الأحد هو صفر يوم الاثنين هو 1، وهكذا. يوضح المثال التالي كيفية إلى تحديد يوم أسبوع الحالي.

var arDays : Array = ["Sunday", "Monday", "Tuesday",
    "Wednesday", "Thursday", "Friday", "Saturday"];

var today : Date = new Date();
var dayNum : Number = today.getDay();
var dayOfWeek : String = arDays[dayNum];

يلي مثال إرجاع تاريخ يوم الجمعة قبل التاريخ الحالي.

function getPreviousDayOfWeek(dayOfWeekNum : Number) : Date
{
    var dt : Date = new Date();
    if (dt.getDay() == dayOfWeekNum)
    {
        // It is currently the day of the week specified in
        // the function call. Subtract one week.
        dt.setDate(dt.getDate() - 7);
    }
    else
    {
        // Go back a day at a time until arriving
        // at the specified day of week.
        while (dt.getDay() != dayOfWeekNum)
        {
            dt.setDate(dt.getDate() - 1);
        }
    }

    return dt;
}

var friday : Number = 5;
var myDate : Date = getPreviousDayOfWeek(friday);

التالي مثال يحدد التاريخ للولايات المتحدة عطلة عيد الشكر، الذي هو يعرف بيوم الخميس الرابع في شهر نوفمبر. برنامج نصي ويبحث عن 1 نوفمبر من السنة الحالية، ثم يبحث عن اﻷول يوم الخميس، و ثم يقوم بإضافة ثلاثة أسابيع.

// Determine the current date and clear the time.
var myDate : Date = new Date();
myDate.setHours(0, 0, 0, 0);

// Determine November 1 of the current year.
var november : Number = 10;
myDate.setMonth(november);
myDate.setDate(1);

// Find Thursday.
var thursday : Number = 4;
while(myDate.getDay() != thursday)
{
    myDate.setDate(myDate.getDate() + 1) ;
}

// Add 3 weeks.
myDate.setDate(myDate.getDate() + 21);

جارى الحساب الوقت المنقضي

getTime أسلوببإرجاع العدد ملى ثوان التي تحتوي المنقضية منذ صفر التاريخ والوقت من منتصف الليل في 1 يناير 1970،. لتاريخ قبل هذا التاريخ، getTimeإرجاع رقم سالب.

يمكنك استخدام getTimeلتعيين يبدأ وإنهاء الوقت لحساب الوقت المنقضي على. يمكن استخدامه لقياس وحدات الصغيرة، مثل بعض ثواني، ووحدات قطر أيمن متوسط، مثل الأيام.

تحديد الوقت المنقضي في ثواني

يقوم هذا المثال بحساب الوقت المنقضي في ثواني. عمله بغض النظر عن مدة الفاصل الزمني هو. ملى ثوان أعدها getTimeالطريقة على قيم مطلقة من صفر التاريخ. ولذلك، يتم الاحتفاظ بزيادة من خلال تغييرات في الدقيقة، ساعة، و يوم.

Console.Write("What is your name? ");

var startTime : Date = new Date();
var name : String = Console.ReadLine();
var endTime : Date = new Date();

var elapsed : Number = 
    (endTime.getTime() - startTime.getTime()) / 1000; 

Console.WriteLine("You took " + elapsed +
    " seconds to type your name.");

تحديد الوقت المنقضي في أيام

إلى العمل مع وحدات أكثر يمكن إدارتها، يمكنك تقسيم ملى ثوان يوفرها getTimeالأسلوب بعلي الرقم المناسب. على سبيل المثال، لتشغيل ملى ثوان في الأيام أو قسمة الرقم 86,400,000 (1000 × 60 × 60 × 24).

يلي مثال يظهر انقضاء الوقت منذ يوم أول من السنة الحالية. فهو يستخدم تتابع العمليات القسمة إلى حساب الوقت المنقضي بالأيام، الساعات، الدقائق والثواني. لا حساب التوفير التوقيت الصيفي الوقت.

// Set the unit values in milliseconds.
var msecPerMinute : Number = 1000 * 60;
var msecPerHour : Number = msecPerMinute * 60;
var msecPerDay : Number = msecPerHour * 24;

// Determine the current date and time.
var today : Date = new Date();

// Determine January 1, at midnight, of the current year.
var january : Number = 0;
var startOfYear : Date = new Date();
startOfYear.setMonth(january);
startOfYear.setDate(1);
startOfYear.setHours(0, 0, 0, 0);

// Determine the difference in milliseconds.
var interval : Number = today.getTime() - startOfYear.getTime();

// Calculate how many days the interval contains. Subtract that
// many days from the interval to determine the remainder.
var days : Number = Math.floor(interval / msecPerDay );
interval = interval - (days * msecPerDay );

// Calculate the hours, minutes, and seconds.
var hours : Number = Math.floor(interval / msecPerHour );
interval = interval - (hours * msecPerHour );

var minutes : Number = Math.floor(interval / msecPerMinute );
interval = interval - (minutes * msecPerMinute );

var seconds : Number = Math.floor(interval / 1000 );

// Display the result.
var msg : String = days + " days, " + hours + " hours, "
 + minutes + " minutes, " + seconds + " seconds.";

print(msg);

تحديد المدة الزمنية الخاصة بالمستخدم

التالي مثال يحدد عمر مستخدم في سنين. يطرح سنة الميلاد من السنة الحالي، و ثم يطرح 1 إذا كان عيد ميلاد لا حدث حتى الآن في السنة الحالي. لا يستخدم millهوeconds المنقضية، لأن التعريف الخاص بنا لعمر هو لا تستند إلى فاصل زمني صارمة.

var birthday : Date = new Date("8/1/1985");
var today : Date = new Date();
var years : Number = today.getFullYear() - birthday.getFullYear();

// Reset birthday to the current year.
birthday.setFullYear(today.getFullYear());

// If the user's birthday has not occurred yet this year, subtract 1.
if (today < birthday)
{
    years--;
}
print("You are " + years + " years old.");

ملاحظة

يجب أن تكون حذراً عند مقارنة تواريخ إلى تأكد بأنك تقوم به بشكل صحيح. يمكنك معرفة المزيد حول هذا في مقطع التالي الخاص بهذا الموضوع.

يلي مثال يوضح أسلوب واحد لحساب العمر الخاص بمستخدم في الأشهر. يتضمن برنامج نصي اختبار إلى تحديد ما إذا كان عيد ميلاد مستخدم حدث في شهر الحالي.

var birthday : Date = new Date("8/1/1985");
var today : Date = new Date();
var years : Number = today.getFullYear() - birthday.getFullYear();

// Determine the number of months.
var months : Number = (years * 12) +
    (today.getMonth() - birthday.getMonth());

// Adjust the months if the birthday has not occurred
// yet in the current month.
if (today.getDate() < birthday.getDate())
{
    months--;
}
print("You are " + months + " months old.");

مقارنة التواريخ

في Jscript، إذا التي تقارنها الكائنات باستخدام أكبر أو أصغر من (<,> < =، أو > =)، يتم تقييم قيم الكائنات قبل comparهوon هو تنفيذ. مقارنات مساواة تعمل بشكل مختلف. إذا كنت تستخدم ==عامل، مقارنة إرجاع trueفقط إذا كان كلا الجانبين لعامل التشغيل تشير إلى نفس الكائن. !=عامل يعمل بشكل مشابه.

getTime أسلوببإرجاع عدد المللي ثانية بين منتصف الليل، 1 يناير 1970، و قيمة الوقت في كائن تاريخ. يمكنك إلى يقارن تمثيلات مللي ثانية من هذين التاريخين.

مللي ثانية-يعمل التاريخ المقارنة، على الرغم من ذلك، لا يعمل بشكل صحيح إذا كان واحد من Dateتتضمن الكائنات مرة غير ذلك من منتصف الليل.

إذا قمت بإنشاء Dateالكائن بدون بما في ذلك على وسيطة الدالة الإنشائية، وقت مقترنة بالتاريخ هو الوقت الحالي. إذا قمت بإنشاء Dateلتاريخ معين، في المرة مقترنة بالتاريخ هو منتصف الليل في بداية هذا يوم.

يقوم المثال التالي ما إذا كان التاريخ الحالي هو نفس تاريخ معين. لتعيين التاريخ الحالي في todayAtMidn، يقوم برنامج نصي بإنشاء Dateكائن للحالي السنة، شهر، و اليوم.

// Determine the current date and time, and then
// determine the current date at midnight.
var now : Date = new Date(); 
var todayAtMidn : Date =
    new Date(now.getFullYear(), now.getMonth(), now.getDate());

// Set specificDate to a specified date at midnight.
var specificDate : Date = new Date("9/21/2009");

// Compare the two dates by comparing the millisecond
// representations.
if (todayAtMidn.getTime() == specificDate.getTime())
{
    print("Same");
}
else
{
    print("Different");
}

راجع أيضًا:

المبادئ

ملخص نوع البيانات