جمع و تفریق تاریخ در سیشارپ
جمع و تفریق تاریخ در سیشارپ با کلاس DateTime انجام میشود و برای محاسبه روزها، ماهها و اختلاف تاریخها کاربرد دارد.
جمع و تفریق تاریخ در سیشارپ
کار با تاریخ و زمان یکی از نیازهای اساسی در بسیاری از برنامههای نرمافزاری است.
تقریباً در هر پروژهای، از سیستمهای مالی و حسابداری گرفته تا فروشگاههای اینترنتی، سامانههای رزرو، مدیریت پروژه و اتوماسیون اداری، نیاز به انجام عملیات مختلف روی تاریخها وجود دارد.
از جمله این عملیات میتوان به محاسبه تعداد روزهای باقیمانده تا یک رویداد، تعیین تاریخ سررسید، محاسبه سن کاربران، اضافه کردن روز یا ماه به یک تاریخ و محاسبه فاصله زمانی بین دو تاریخ اشاره کرد.
در زبان برنامهنویسی سیشارپ، کلاس DateTime امکانات بسیار قدرتمندی برای مدیریت تاریخ و زمان در اختیار توسعهدهندگان قرار میدهد.
با استفاده از این کلاس میتوان به راحتی عملیات جمع و تفریق تاریخ را انجام داد و نتایج دقیقی به دست آورد.
کلاس DateTime چیست؟
کلاس DateTime در فضای نام System قرار دارد و برای ذخیره و مدیریت تاریخ و زمان استفاده میشود.
نمونه ایجاد یک تاریخ:
DateTime today = DateTime.Now;
Console.WriteLine(today);
خروجی:
2026-06-29 10:30:45
مقدار بالا شامل تاریخ و ساعت فعلی سیستم است.
ایجاد یک تاریخ مشخص
گاهی لازم است تاریخ مشخصی تعریف کنیم.
DateTime birthday = new DateTime(1995, 5, 15);
Console.WriteLine(birthday);
خروجی:
1995-05-15 00:00:00
پارامترها به ترتیب:
- سال
- ماه
- روز
هستند.
آیا به دنبال یک فرصت عالی برای یادگیری برنامهنویسی هستید؟ 🚀
با دوره آموزشی سیشارپ ما، شما میتوانید مهارتهای خود را به سطح جدیدی ارتقا دهید! این دوره بهطور کامل طراحی شده تا به شما کمک کند تا از مبتدی تا پیشرفته در دنیای برنامهنویسی سیشارپ پیش بروید.
👨🏫 چرا دوره ما را انتخاب کنید؟
- محتوای جامع و عملی: با پروژههای واقعی و تمرینات عملی، یادگیری را به تجربهای جذاب تبدیل کنید.
- مدرس مجرب: از تجربه و دانش مدرس حرفهای بهرهمند شوید که شما را در هر مرحله از یادگیری راهنمایی میکنند.
- پشتیبانی ۲۴/۷: هر زمان که سوالی داشتید، ما در کنار شما خواهیم بود تا به شما کمک کنیم.
- دسترسی مادامالعمر: به محتوای دوره دسترسی دائمی داشته باشید و هر زمان که خواستید، میتوانید به آن مراجعه کنید.
💡 فرصت را از دست ندهید!
بایادگیری سیشارپ، میتوانید در دنیای فناوری اطلاعات به یک متخصص تبدیل شوید و در پروژههای جذاب و چالشبرانگیز شرکت کنید.
همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آیندهای روشنتر بردارید!
شرکت در دوره آموزش برنامه نویسی سی شارپ
جمع تاریخ در سیشارپ
منظور از جمع تاریخ، اضافه کردن مقدار مشخصی روز، ماه، سال، ساعت یا دقیقه به یک تاریخ است.
اضافه کردن روز
متد AddDays برای افزودن روز استفاده میشود.
DateTime today = DateTime.Now;
DateTime futureDate = today.AddDays(10);
Console.WriteLine(futureDate);
خروجی:
10 روز بعد از تاریخ فعلی
مثال کاربردی: محاسبه تاریخ تحویل سفارش
فرض کنید فروشگاه شما سفارشها را 7 روز بعد تحویل میدهد.
DateTime orderDate = DateTime.Now;
DateTime deliveryDate = orderDate.AddDays(7);
Console.WriteLine("تاریخ تحویل:");
Console.WriteLine(deliveryDate);
اضافه کردن ماه
برای افزودن ماه از متد AddMonths استفاده میشود.
DateTime date = DateTime.Now;
DateTime result = date.AddMonths(3);
Console.WriteLine(result);
مثال کاربردی: تمدید اشتراک
فرض کنید اشتراک یک کاربر سه ماهه باشد.
DateTime registerDate = DateTime.Now;
DateTime expireDate = registerDate.AddMonths(3);
Console.WriteLine(expireDate);
اضافه کردن سال
برای افزودن سال
DateTime date = DateTime.Now;
DateTime nextYear = date.AddYears(1);
Console.WriteLine(nextYear);
مثال کاربردی: اعتبار گواهینامه
DateTime issueDate = DateTime.Now;
DateTime expireDate = issueDate.AddYears(5);
Console.WriteLine(expireDate);
اضافه کردن ساعت
DateTime now = DateTime.Now;
DateTime later = now.AddHours(5);
Console.WriteLine(later);
اضافه کردن دقیقه
DateTime now = DateTime.Now;
DateTime result = now.AddMinutes(45);
Console.WriteLine(result);
اضافه کردن ثانیه
DateTime now = DateTime.Now;
DateTime result = now.AddSeconds(30);
Console.WriteLine(result);
تفریق تاریخ در سیشارپ
تفریق تاریخ معمولاً به دو شکل انجام میشود:
- کم کردن مدت زمان از یک تاریخ
- محاسبه فاصله بین دو تاریخ
- کم کردن روز از تاریخ
برای کم کردن روز کافی است عدد منفی ارسال کنیم.
DateTime today = DateTime.Now;
DateTime result = today.AddDays(-5);
Console.WriteLine(result);
مثال کاربردی: پیدا کردن تاریخ 30 روز قبل
DateTime today = DateTime.Now;
DateTime lastMonth = today.AddDays(-30);
Console.WriteLine(lastMonth);
-
کم کردن ماه
DateTime today = DateTime.Now;
DateTime result = today.AddMonths(-2);
Console.WriteLine(result);
-
کم کردن سال
DateTime today = DateTime.Now;
DateTime result = today.AddYears(-1);
Console.WriteLine(result);
محاسبه فاصله بین دو تاریخ
یکی از پرکاربردترین عملیاتها در برنامهنویسی محاسبه اختلاف بین دو تاریخ است.
DateTime startDate = new DateTime(2025, 1, 1);
DateTime endDate = new DateTime(2025, 1, 15);
TimeSpan difference = endDate - startDate;
Console.WriteLine(difference.Days);
خروجی:
14
کلاس TimeSpan چیست؟
زمانی که دو DateTime را از هم کم میکنیم، نتیجه از نوع TimeSpan خواهد بود.
TimeSpan diff = endDate - startDate;
TimeSpan برای نمایش فاصله زمانی استفاده میشود.
ویژگیهای مهم TimeSpan در سی شارپ
-
تعداد روزها
diff.Days
-
تعداد ساعتها
diff.Hours
-
تعداد دقیقهها
diff.Minutes
-
تعداد ثانیهها
diff.Seconds

مثال کاربردی: محاسبه سن کاربر
DateTime birthDate =
new DateTime(1995, 5, 15);
DateTime today =
DateTime.Today;
int age =
today.Year - birthDate.Year;
if (birthDate.Date >
today.AddYears(-age))
{
age--;
}
Console.WriteLine(age);
مثال کاربردی: تعداد روزهای باقیمانده تا پایان سال
DateTime today = DateTime.Today;
DateTime endYear =
new DateTime(today.Year, 12, 31);
TimeSpan remain =
endYear - today;
Console.WriteLine(remain.Days);
مثال کاربردی: شمارش معکوس تا تاریخ خاص
DateTime eventDate =
new DateTime(2027, 1, 1);
TimeSpan remain =
eventDate - DateTime.Now;
Console.WriteLine(
$"باقی مانده: {remain.Days} روز");
مقایسه دو تاریخ
گاهی نیاز داریم بررسی کنیم کدام تاریخ بزرگتر است.
DateTime d1 =
new DateTime(2025, 1, 1);
DateTime d2 =
new DateTime(2025, 2, 1);
if(d2 > d1)
{
Console.WriteLine("تاریخ دوم جدیدتر است");
}
بررسی برابر بودن دو تاریخ
if(date1 == date2)
{
Console.WriteLine("برابر هستند");
}
تبدیل رشته به تاریخ
بسیاری از دادهها به صورت رشته از کاربر دریافت میشوند.
string input =
"2026-06-29";
DateTime date =
DateTime.Parse(input);
Console.WriteLine(date);
استفاده از TryParse
روش امنتر:
string input = "2026-06-29";
DateTime date;
if(DateTime.TryParse(input,
out date))
{
Console.WriteLine(date);
}
else
{
Console.WriteLine("تاریخ نامعتبر");
}
مثال پروژهای: سیستم رزرو هتل
فرض کنید کاربر تاریخ ورود و تعداد شب اقامت را وارد میکند.
DateTime checkIn =
new DateTime(2026, 7, 1);
int nights = 5;
DateTime checkOut =
checkIn.AddDays(nights);
Console.WriteLine(checkOut);
خروجی:
2026-07-06
مثال پروژهای: محاسبه مهلت پرداخت فاکتور
DateTime invoiceDate =
DateTime.Now;
DateTime dueDate =
invoiceDate.AddDays(30);
Console.WriteLine(dueDate);
مثال پروژهای: اعتبار کد تخفیف
DateTime createDate =
DateTime.Now;
DateTime expireDate =
createDate.AddDays(15);
if(DateTime.Now <= expireDate)
{
Console.WriteLine("کد معتبر است");
}
نکات مهم هنگام کار با تاریخ
- از DateTime.Now برای تاریخ و ساعت فعلی استفاده کنید
DateTime.Now
- برای دریافت فقط تاریخ از DateTime.Today استفاده کنید
DateTime.Today
- از TimeSpan برای محاسبه اختلاف استفاده کنید
TimeSpan diff =
date2 - date1;
- برای کم کردن تاریخ، عدد منفی به متدهای Add ارسال کنید
date.AddDays(-10);
- هنگام دریافت تاریخ از کاربر از TryParse استفاده کنید
این کار از بروز خطا جلوگیری میکند.
مزایای استفاده از DateTime در سیشارپ
-
دقت بالا در محاسبات زمانی
-
پشتیبانی کامل از سال، ماه، روز و ساعت
-
انجام آسان جمع و تفریق تاریخ
-
امکان مقایسه مستقیم تاریخها
-
سازگاری کامل با SQL Server
-
مناسب برای سیستمهای مالی، فروشگاهی و سازمانی

جمعبندی
جمع و تفریق تاریخ در سیشارپ با استفاده از کلاس DateTime و ساختار TimeSpan بسیار ساده و قدرتمند انجام میشود.
متدهایی مانند AddDays، AddMonths، AddYears، AddHours و AddMinutes امکان افزودن یا کم کردن زمان را فراهم میکنند، در حالی که تفریق دو شیء DateTime یک TimeSpan برمیگرداند که میتوان از آن برای محاسبه اختلاف روز، ساعت، دقیقه و ثانیه استفاده کرد.
این قابلیتها در پروژههای واقعی مانند سیستمهای رزرو، فروشگاههای اینترنتی، مدیریت اشتراک کاربران، محاسبه سن، تعیین سررسید فاکتورها و بسیاری از نرمافزارهای سازمانی کاربرد فراوانی دارند. تسلط بر مدیریت تاریخ و زمان یکی از مهارتهای ضروری هر برنامهنویس سیشارپ محسوب میشود.


کاربران ما
شما هم نظرتون با ما دریاره “جمع و تفریق تاریخ در سیشارپ” اشتراک بزارید
برای ارسال نظر لطفا ورود یا ثبت نام کنید