تابعی برای کم کردن چند روز از تاریخ فعلی
ورودی تابع یک رشته که تاریخ می باشد و یک مقدار عددی که مقدار روزی می باشد که باید از تاریخ کسر شود.
کد برنامه :
String DateMinus(string Date_In, int Days_)
{
int Year = 0, Mont = 0, Day = 0, NewDay = 0, NewYear;
string DateEnd;
string FHlp = Date_In.Substring(0, Date_In.LastIndexOf('/'));
Year = Convert.ToInt32(FHlp.Substring(0, FHlp.LastIndexOf('/')));//Year
Mont = Convert.ToInt32(FHlp.Substring(Year.ToString().Length + 1));//Months
Day = Convert.ToInt32(Date_In.Substring(Date_In.LastIndexOf('/') + 1));//Day
NewDay = Day - Days_;
if (NewDay <= 0)
{
Mont--;
NewDay--;
if (Mont == 0)
{
NewYear = Year - 1;
Year = NewYear;
Mont = 12;
}
if (Mont <= 6 && Mont >= 1)
NewDay = NewDay + 31;
if (Mont > 6 && Mont <= 11)
NewDay = NewDay + 30;
if (Mont == 12)
NewDay = NewDay + 29;
Day = NewDay;
}
if (NewDay > 0)
{
if (NewDay > 30 && Mont > 6 && Mont <= 11)
for (; NewDay > 30; Mont++)
{
if (Mont > 6 && Mont <= 11)
{
NewDay = NewDay - 30;
}
if (Mont <= 6)
{
for (; NewDay > 31; Mont++)
NewDay = NewDay - 31;
}
if (Mont == 12)
{
for (; NewDay > 29; Mont++)
NewDay = NewDay - 29;
if (Mont > 12)
{
Year++;
Mont = 1;
}
}
}
if (NewDay <= 30 && Mont > 6 && Mont <= 11)
{
Day = NewDay;
}
if (NewDay <= 29 && Mont == 12)
{
Day = NewDay;
}
if (NewDay <= 31 && Mont <= 6)
{
Day = NewDay;
}
}
DateEnd = (Convert.ToString(Year) + "/" + Convert.ToString(Mont) + "/" + Convert.ToString(Day));
return (DateEnd);
}
- ۹۱/۱۰/۲۲