תכנות דלפי: שגרות תאריך / שעה

משווה שני ערכי TDateTime (מחזיר "פחות", "שווה" או "גדול יותר"). מתעלם מחלק הזמן אם שני הערכים "נופלים" באותו יום.

פונקציית השוואהDateTime

משווה שני ערכי TDateTime (מחזיר "פחות", "שווה" או "גדול יותר").

הצהרה:
type TValueRelationship = -1..1
פונקציה השווה את התאריךconst ADate, BDate: TDateTime): TValueRelationship

תיאור:
משווה שני ערכי TDateTime (מחזיר "פחות", "שווה" או "גדול יותר").

TValueRelationship מייצג את הקשר בין שני ערכים. לכל אחד משלושה ערכי TValueRelationhip יש קבוע סמלי "אהב":
-1 [LessThanValue] הערך הראשון הוא פחות מהערך השני.
0 [EqualsValue] שני הערכים שווים.
1 [GreaterThanValue] הערך הראשון גדול מהערך השני.
השווה את תוצאות התאריך ב:

LessThanValue אם ADate מוקדם יותר מ- BDate.
שווה ערך אם חלקי התאריך והשעה של ADate וגם BDate זהים
GreaterThanValue אם ADate מאוחר מ- BDate.

דוגמא:

var ThisMoment, FutureMoment: TDateTime; ThisMoment: = עכשיו; FutureMoment: = IncDay (ThisMoment, 6); // מוסיף 6 ימים. // CompareDateTime (ThisMoment, FutureMoment) מחזיר LessThanValue (-1) // CompareDateTime (FutureMoment, ThisMoment) מחזיר GreaterThanValue (1)
instagram viewer

פונקציית השוואה

משווה שני ערכי TDateTime (מחזיר "פחות", "שווה" או "גדול יותר"). מתעלם מחלק התאריך אם שני הערכים מופיעים בו זמנית.

הצהרה:
type TValueRelationship = -1..1
פונקציה השווה תאריך (const ADate, BDate: TDateTime): TValueRelationship

תיאור:
משווה שני ערכי TDateTime (מחזיר "פחות", "שווה" או "גדול יותר"). מתעלם מחלק הזמן אם שני הערכים מתרחשים בו זמנית.

TValueRelationship מייצג את הקשר בין שני ערכים. לכל אחד משלושה ערכי TValueRelationhip יש קבוע סמלי "אהב":
-1 [LessThanValue] הערך הראשון הוא פחות מהערך השני.
0 [EqualsValue] שני הערכים שווים.
1 [GreaterThanValue] הערך הראשון גדול מהערך השני.
השווה את תוצאות התאריך ב:

LessThanValue אם ADate מתרחש מוקדם יותר ביום שצוין על ידי BDate.
שווה ערך אם חלקי הזמן של ADate וגם של BDate זהים, תוך התעלמות מחלק התאריך.
GreaterThanValue אם ADate מתרחש בהמשך היום שצוין על ידי BDate.

דוגמא:

var ThisMoment, AnotherMoment: TDateTime; ThisMoment: = עכשיו; AnotherMoment: = IncHour (ThisMoment, 6); // מוסיף 6 שעות. // השווה את התאריך (ThisMoment, AnotherMoment) מחזיר את LessThanValue (-1) // CompareDate (AnotherMoment, ThisMoment) מחזיר את GreaterThanValue (1

פונקצית תאריך

מחזירה את תאריך המערכת הנוכחי.

הצהרה:
סוג TDateTime = סוג כפול;

פונקציה תאריך: TDateTime;

תיאור:
מחזירה את תאריך המערכת הנוכחי.

החלק האינטגרלי מערך TDateTime הוא מספר הימים שחלפו מאז 30/30/1899. החלק השברירי של ערך TDateTime הוא שבריר של יום של 24 שעות שחלף.

כדי למצוא את המספר השברירי של הימים בין שני תאריכים, פשוט גרע את שני הערכים. באופן דומה, כדי להגדיל את ערך התאריך והשעה במספר שברירי מסוים של ימים, פשוט הוסף את המספר השברי לערך התאריך והשעה.

דוגמא: ShowMessage ('היום הוא' + DateToStr (תאריך));

פונקצית DateTimeToStr

ממיר ערך TDateTime למחרוזת (תאריך ושעה).

הצהרה:
סוג
TDateTime = סוג כפול;

פונקציה DayOfWeek (תאריך: TDateTime): מספר שלם;

תיאור:
מחזירה את יום השבוע לתאריך נתון.

DayOfWeek מחזיר מספר שלם בין 1 ל- 7, בו יום ראשון הוא היום הראשון בשבוע ושבת היא השביעית.
DayOfTheWeek אינו תואם לתקן ISO 8601.

דוגמא:

const ימים: מערך [1..7] של מחרוזת = ('ראשון שני שלישי רביעי חמישי שישי שבת') ShowMessage ('היום הוא' + ימים [DayOfWeek (תאריך)]); //היום יום שני

פונקצית DaysBetween

נותן את מספר הימים השלמים בין שני תאריכים שצוינו.

הצהרה:
פונקציה
DaysBetween (const ANow, Athen: TDateTime): מספר שלם;

תיאור:
נותן את מספר הימים השלמים בין שני תאריכים שצוינו.

הפונקציה סופרת ימים שלמים בלבד. משמעות הדבר היא שהיא תחזור 0 כתוצאה להפרש בין 05/01/2003 23:59:59 ל- 05/01/2003 23:59:58 - כאשר ההפרש בפועל הוא יום * שלם * מינוס שנייה אחת .

דוגמא:

var dtNow, dtBirth: TDateTime; DaysFromBirth: מספר שלם; dtNow: = עכשיו; dtBirth: = EncodeDate (1973, 1, 29); DaysFromBirth: = DaysBetween (dtNow, dtBirth); ShowMessage ('Zarko Gajic' קיים '' + IntToStr (DaysFromBirth) + 'ימים שלמים!');

פונקצית DateOf

מחזירה רק את חלק התאריך מערך TDateTime, על ידי הגדרת חלק הזמן ל 0.

הצהרה:
פונקציה
DateOf (תאריך: TDateTime): TDateTime

תיאור:
מחזירה רק את חלק התאריך מערך TDateTime, על ידי הגדרת חלק הזמן ל 0.

DateOf מגדיר את פרק הזמן ל- 0, שפירושו חצות.

דוגמא:

var ThisMoment, ThisDay: TDateTime; ThisMoment: = עכשיו; // -> 06/27/2003 10:29:16:138. ThisDay: = DateOf (ThisMoment); // היום הזה: = 06/27/2003 00: 00: 00: 000

פונקציית DecodeDate

מפריד בין ערכי שנה, חודש ויום מערך TDateTime.

הצהרה:
תהליך
DecodeDate (תאריך: TDateTime; var שנה, חודש, יום: מילה) ;;

תיאור:
מפריד בין ערכי שנה, חודש ויום מערך TDateTime.

אם ערך TDateTime הנתון הוא פחות או שווה לאפס, כל פרמטרי החזרת השנה, החודש והיום מוגדרים לאפס.

דוגמא:

var Y, M, D: Word; DecodeDate (תאריך, Y, M, D); אם Y = 2000 אז. ShowMessage ('אתה במאה' לא נכונה '!);

פונקציית EncodeDate
יוצר ערך TDateTime מערכי שנה, חודש ויום.

הצהרה:
פונקציה
EncodeDate (שנה, חודש, יום: Word): TDateTime

תיאור:
יוצר ערך TDateTime מערכי שנה, חודש ויום.

השנה חייבת להיות בין 1 ל- 9999. ערכי חודש תקפים הם 1 עד 12. ערכי יום תקפים הם 1 עד 28, 29, 30 או 31, תלוי בערך החודש.
אם הפונקציה נכשלה, EncodeDate מעלה חריג EConvertError.

דוגמא:

var Y, M, D: Word; dt: TDateTime; y: = 2001; M: = 2; D: = 18; dt: = קידוד תאריך (Y, M, D); ShowMessage ('בורנה תהיה. בת שנה ב- '+ DateToStr (dt))

פונקציית FormatDateTime
מעצב ערך TDateTime למחרוזת.

הצהרה:
פונקציה
FormatDateTime (const Fmt: מחרוזת; ערך: TDateTime): מחרוזת;

תיאור:
מעצב ערך TDateTime למחרוזת.

FormatDateTime משתמש בתבנית שצוינה על ידי פרמטר Fmt. לקבלת מפרטי הפורמט הנתמכים, עיין בקבצי העזרה של דלפי.

דוגמא:

var s: מחרוזת; d: TDateTime;... ד: = עכשיו; // היום + השעה הנוכחית. s: = FormatDateTime ('dddd', d); // s: = רביעי. s: = FormatDateTime ('"היום הוא" dddd "דקה" nn, d) // s: = היום יום רביעי 24

פונקציית IncDay

מוסיף או חוטף מספר נתון של ימים מערך התאריך.

הצהרה:
פונקציה
IncDay (ADate: TDateTime; ימים: מספר שלם = 1): TDateTime;

תיאור:
מוסיף או חוטף מספר נתון של ימים מערך התאריך.

אם פרמטר הימים שלילי, התאריך שהוחזר הוא

דוגמא:

var תאריך: TDateTime; EncodeDate (תאריך, 2003, 1, 29) // 29 בינואר 2003. IncDay (תאריך, -1) // 28 בינואר 2003

עכשיו פונקציה

מחזירה את התאריך והשעה הנוכחיים של המערכת.

הצהרה:
סוג
TDateTime = סוג כפול;

פונקציה עכשיו: TDateTime;

תיאור:
מחזירה את התאריך והשעה הנוכחיים של המערכת.

החלק האינטגרלי מערך TDateTime הוא מספר הימים שחלפו מאז 30/30/1899. החלק השברירי של ערך TDateTime הוא שבריר של יום של 24 שעות שחלף.

כדי למצוא את המספר השברירי של הימים בין שני תאריכים, פשוט גרע את שני הערכים. באופן דומה, כדי להגדיל את ערך התאריך והשעה במספר שברירי מסוים של ימים, פשוט הוסף את המספר השברי לערך התאריך והשעה.

דוגמא: ShowMessage ('עכשיו הוא' + DateTimeToStr (עכשיו));

פונקצית שנים בין לבין

נותן את מספר השנים השלמות בין שני תאריכים שצוינו.

הצהרה:
פונקציה
שנים בין (const SomeDate, AnotherDate: TDateTime): מספר שלם;

תיאור:
נותן את מספר השנים השלמות בין שני תאריכים שצוינו.

שנים בין לבין מחזירה קירוב על בסיס הנחה של 365.25 ימים בשנה.

דוגמא:

var dtSome, dtAnother: TDateTime; DaysFromBirth: מספר שלם; dtSome: = EncodeDate (2003, 1, 1); dtAnother: = EncodeDate (2003, 12, 31); YearsBetween (dtSome, dtAnother) == 1 // שנה לא מעוברת. dtSome: = EncodeDate (2000, 1, 1); dtAnother: = EncodeDate (2000, 12, 31); YearsBetween (dtSome, dtAnother) == 0 // שנה מעוברת