מדריך C# – תאריכים ועבודה עם DateTime

‏ • Sela

בחלק זה נלמד על טיפוס משתנה בשם DateTime, שיאפשר לנו לעבוד עם תאריכים.

הטיפוס DateTime

משתנה שיוגדר להיות מטיפוס DateTime יוכל להכיל בתוכו כל תאריך ושעה אפשרי.
משתנה מטיפוס DateTime מכיל אוסף של פונקציות עזר שמותאמות במיוחד לעבודה עם תאריכים.

יצירה של משתנה מטיפוס DateTime

יצירת משתנה DateTime מתבצעת באמצעות המילה new שכבר ראינו לה שימוש בחלקים הקודמים למדריך.
בעת היצירה ניתן (אך לא חובה) להעביר פרמטרים על התאריך ההתחלתי שיהיה בתוך המשתנה.

לדוגמא, קטע הקוד הבא יוצר משתנה מטיפוס DateTime המכיל את התאריך 12/12/2005 והשעה 09:00, ומדפיס אותו למסך:

DateTime date = new DateTime(2005, 12, 12, 9, 0, 0);
Console.WriteLine(date);

התוצאה:

מדריך #C - עבודה עם DateTime

קטע הקוד הבא יוצר משתנה מטיפוס DateTime ללא הגדרת הזמן, במקרה כזה הזמן מוגדר להיות 00:00:00

DateTime date = new DateTime(2005, 12, 12);
Console.WriteLine(date);

מדריך #C - עבודה עם DateTime


תכונות של DateTime

למשתנה מטיפוס DateTime יש תכונות נוחות המאפשרות לקבל את החלקים השונים מתוך התאריך או השעה.

לדוגמא, התכונה Year מחזירה את השנה של התאריך.

באופן דומה קיימות תכונות Month , Day , Hour , Minute , Second ואפילו Millisecond שמחזירים את החודש, יום, שעה, שניה ואלפית השניה בהתאמה:

DateTime date = new DateTime(2005, 12, 12, 9, 0, 0);
Console.WriteLine(date);
Console.WriteLine("Year = " + date.Year.ToString());
Console.WriteLine("Month = " + date.Month.ToString());
Console.WriteLine("Day = " + date.Day.ToString());
Console.WriteLine("Hour = " + date.Hour.ToString());
Console.WriteLine("Minute = " + date.Minute.ToString());
Console.WriteLine("Second = " + date.Second.ToString());

מדריך #C - עבודה עם DateTime

 

מה השעה?

תכונה אחת מאוד שימושית במחלקה DateTime היא נקראת Now והיא מחזירה את התאריך והשעה הנוכחית.

לדוגמא, קטע הקוד הבא מציג את השעה:

DateTime currentTime = DateTime.Now;
Console.WriteLine(currentTime);

מדריך #C - עבודה עם DateTime

 

חיבור תאריכים

ניתן לבצע פעולות חיבור על מה משתנה מטיפוס DateTime.

לדוגמא, אם נרצה לחשב מה יהיה התאריך בעוד 40 יום, נשתמש בפונקציה AddDays עם פרמטר 40:

DateTime currentTime = DateTime.Now;
DateTime future = currentTime.AddDays(40);
Console.WriteLine(currentTime);
Console.WriteLine(future);

והתוצאה:

מדריך #C - עבודה עם DateTime

שימו לב שהוספת 40 יום לתאריך נעשתה תוך התחשבות במספר הימים בחודש הנוכחי.

באופן דומה לפונקציה AddDays קיימות הפונקציות AddYears , AddMonths , AddHours , AddMinutes , AddSeconds שמוסיפות שנים, חודשים, שעות, דקות ושניות בהתאמה.

הדפסת תאריכים בפורמטים שונים

הפונקציה ToString היא פונקציה שקיימת לכל משתנה בשפת C#, והיא מאפשרת להמיר כל אוביקט למחרוזת.

כאשר עובדים עם תאריכים נרצה לפעמים להדפיס את התאריך בפורמט שונה מברירת המחדל. ניתן לעשות זאת ע"י העברת פרמטר לפונקציית ToString.

לדוגמא, קטע הקוד הבא מציג את השעה הנוכחית במספר פורמטרים שונים:

DateTime currentTime = DateTime.Now;
Console.WriteLine(currentTime.ToString());
Console.WriteLine(currentTime.ToString("dd/MM/yyyy"));
Console.WriteLine(currentTime.ToString("yyyy-MM-dd HH:mm"));

הרצת התוכנית תיתן לנו:

מדריך #C - עבודה עם DateTime

תגיות: , , ,

arikp

אריק פוזננסקי הוא יועץ בכיר ומרצה בסלע. הוא השלים שני תארי B.Sc. במתמטיקה ומדעי המחשב בהצטיינות יתרה בטכניון. לאריק ידע נרחב בטכנולוגיות מיקרוסופט, כולל .NET עם C#, WPF, Silverlight, WinForms, Interop, COM/ATL, C++ Win32 ו reverse engineering.

תגובות בפייסבוק