PDA

View Full Version : سوال: افزودن تعداد روز به یک تاریخ و مقایسه آن با یک تاریخ دیگر



farzadini
جمعه 23 اسفند 1392, 20:07 عصر
با سلام . من یک جدول دارم که شامل اطلاعاتی هست از جمله یک تاریخ درش ثبت می شه و همچنین یک فیلد عددی از نوع اینتجر. ممکنه دوستان اعلام کنند ایا راهی برای مثال هست که بشه اون عدد اینتجر رو از تاریخ کم یا زیاد کنیم. برای مثال 4 روز از 13 هم ماه 12 سال 92 مطابق 921213 کم کنیم و نتیجه که نتیجه که میشه 921209 رو با تاریخ امروز مقایسه کنیم نتیجه بهمون بگه که از تاریخ امروز بزرگتره یا کوچکتر هست؟ امیدوارم بخوبی توضیح داده باشم . ممنون از توجه دوستان

Boy_nn
شنبه 24 اسفند 1392, 10:19 صبح
بهترین راه حل تبدیل تاریخ به تاریخ میلادی هست این جوری هم می توری روز بهش اضافه و کم کنی هم با تاریخ های دیگه مقایسه کنی
هر وقت هم لازم بود به تاریخ شمسی تبدیلش کن و به کار بر نشون بده

winner1
شنبه 24 اسفند 1392, 10:32 صبح
public static string CutDaysFromDate(DateTime date, int days)
{
int day =date.Day;
int month = date.Month;
int year=date.Year;
//if day >30 then calcute mounth cut count.
if (days > 30)
{
day =(days % 30);
month=(days / 30);
//if mounth > this mean to this date of last years
if (month >=date.Month )
{
month = 12-(month-date.Month);
year = date.Year - 1;
}
if (day >= date.Day)
{
day = day - date.Day;
month=date.Month-1;
if (month < 1)
{
month = 12;
year = date.Year - 1;
}
}
}
else if (days < 30)
{
day = date.Day - days;
//if day<0 this mean to this date of last mounth
if (days >= date.Day)
{
day = 30 - (days - date.Day);
month = date.Month - 1;
if (month < 1)
{
month = 12;
year = date.Year - 1;
}
}
}
string result = year.ToString();
if (month.ToString().Length == 1)
{
result += "0" + month;
}
else
{
result += month;
}
if (day.ToString().Length == 1)
{
result += "0" + day;
}
else
{
result += day;
}

return result;
}

kashkooli
شنبه 24 اسفند 1392, 14:31 عصر
مسلما بهترین راه تبدیل تاریخ به میلادی هست که با پنج خط کمتر توی سی شارپ می تونید تبدیل کنید و کداش آماده هست ، تاریخ میلادی هم که در کلاس DateTime تابع AddDay دارد که فقط کافیست عددتون رو بش بدید تا به همون مقدار روز روی تاریختون بیاره ، اگه هم خواستید کم بشه عدد منفی به ورودی این تابع بدید ، بعد هم با یه تابع تبدیل میلادی به شمسی که اون هم با پنج خط کده میتونید دوباره به شمسی تبدیلش کنید از کلاس System.Globalization.PersianCalendar