PDA

View Full Version : پیدا کردن روزهای بین دو تاریخ



hasti44
یک شنبه 25 تیر 1391, 23:45 عصر
سلام
دو تا فیلد در یک جدول به نامهای تاریخ اغاز مرخصی و تاریخ پایان دارم
میخواهم روزهای بین این دو تاریخ را پیدا کنم تا در جدول دیگری که روزهای تعطیل ثبت میشود ببینم که آیا این روزهای مرخصی جز روزهای تعطیل بوده است یا نه؟
این روزهای بین دو تاریخ را چطور به دست بیارم؟
لطفا سریع کمک کنید
خیلی عجله دارم

ramin149
دوشنبه 26 تیر 1391, 12:28 عصر
/// <summary>
/// محاسبه اختلاف روزها بین دو تاریخ
/// مثال تاریخ موردی : 21/09/2011
/// </summary>
/// <param name="Difference2Date"></param>
/// <returns></returns>
public int Difference2Date(int dateForm, int dateTo)
{
string MonthForm = dateForm.ToString().Substring(4, 1);
MonthForm += dateForm.ToString().Substring(5, 1);
string DaysForm = dateForm.ToString().Substring(6, 1);
DaysForm += dateForm.ToString().Substring(7, 1);
string yearsForm = dateForm.ToString().Substring(0, 1);
yearsForm += dateForm.ToString().Substring(1, 1);
yearsForm += dateForm.ToString().Substring(2, 1);
yearsForm += dateForm.ToString().Substring(3, 1);
//////////////////////////////////////////////////////////////
string MonthTo = dateTo.ToString().Substring(4, 1);
MonthTo += dateTo.ToString().Substring(5, 1);
string DaysTo = dateTo.ToString().Substring(6, 1);
DaysTo += dateTo.ToString().Substring(7, 1);
string yearsTo = dateTo.ToString().Substring(0, 1);
yearsTo += dateTo.ToString().Substring(1, 1);
yearsTo += dateTo.ToString().Substring(2, 1);
yearsTo += dateTo.ToString().Substring(3, 1);
//////////////////////////////////////////////////////////////
DateTime t1 = new DateTime(int.Parse(yearsForm), int.Parse(MonthForm), int.Parse(DaysForm), 0, 0, 0, 0);
DateTime t2 = new DateTime(int.Parse(yearsTo), int.Parse(MonthTo), int.Parse(DaysTo), 0, 0, 0, 0);
TimeSpan t = t2 - t1;
string TS = t.ToString();
if (TS.Length == 10)
{
return int.Parse(TS.ToString().Substring(0, 1));
}
else if (TS.Length == 11)
{
return int.Parse(TS.ToString().Substring(0, 2));
}
else
{
return int.Parse(TS.ToString().Substring(0, 1));
}
}

ASP.NET2
دوشنبه 26 تیر 1391, 12:37 عصر
DateTime Enddate = Convert.ToDateTime("2012/7/16");
DateTime StartDate=Convert.ToDateTime("2012/7/14");
int days =(int) (Enddate - StartDate).TotalDays;


اینجوریه

hasti44
دوشنبه 26 تیر 1391, 20:18 عصر
دوستان من خود تاریخها رو میخوام نه تعذاد روزها !!!
مثلا از تاریخ 1391/2/3 تا 1391/3/6 تمام تاریخها در این فاصله رو میخوام

fakhravari
سه شنبه 27 تیر 1391, 01:34 صبح
خوب شما میتوانید مدت بینشون بگیری مثلا 20 روز.
بعد توی یه حلقه for
add روز 1 بدی
بعد توی یه ارایه استرینگی بگیریش.

protected void Button1_Click(object sender, EventArgs e)
{
DateTime Enddate = Convert.ToDateTime(ToMiladi("1390/05/15"));
DateTime StartDate = Convert.ToDateTime(ToMiladi("1390/01/25"));
int days = (int)(Enddate - StartDate).TotalDays;

string[] day = new string[days];

for (int i = 0; i < days; i++)
{
day[i] = StartDate.AddDays(i).ToString("yyyy/mm/dd");
}



}




static PersianCalendar persianCalendar = new PersianCalendar();


public static DateTime ToMiladi(string shamsiDate)
{
int year = int.Parse(shamsiDate.Substring(0, 4));
int month = int.Parse(shamsiDate.Substring(5, 2));
int day = int.Parse(shamsiDate.Substring(8, 2));
return persianCalendar.ToDateTime(year, month, day, 0, 0, 0, 0);
}