Ebrahim_Rayaneh
جمعه 27 خرداد 1390, 18:08 عصر
سلام
فرض كنيد يه ديتابيس داريم كه در يكي از فيلد هاي تيبل هاي آن تاريخ (به ميلادي=datetime) ذخيره مي كنيم به يه قطعه كدي احتياج دارم كه نزديكترين تاريخ به تاريخ كنوني را محاسبه كند و آن را برگرداند.البته من با سرچ كردن در اينترنت يه چيزي پيدا كردم اما نمي دونم چرا متغير closestdate در نهايت مقدار نمي گيره ؟!
//پيدا كردن آخرين زماني كه مشتري سفارش داده است
DateTime NowDate;
DateTime closestDate;
List<DateTime> theDates = new List<DateTime>();//load the date list, obviously
ds = sp.Select_Record("t_Factor", "DateIssuance", "", "", "", "");
foreach (DataRow row in ds.Tables["t_Factor"].Rows)
{
theDates.Add((DateTime)row["DateIssuance"]);
}
NowDate = DateTime.Today; //set to the file date
closestDate = DateTime.Today;
long min = Math.Abs(NowDate.Ticks - theDates[0].Ticks);
long diff;
for (int i = 0; i < theDates.Count; i++)
{
diff = Math.Abs(NowDate.Ticks - theDates[i].Ticks);
if (diff < min)
{
min = diff;
closestDate = theDates[i];
}
}
البته در توضيح بگم كه تابع Select_Record وظيفش فقط بازيابي كردن تاريخ هاي مورد نظر از ديتابيس ميباشد.
به نظر شما اين تابع اشتباه است يا اينكه مشكل از جاي ديگريست؟:متفکر:
آيا شما راه حل بهتري سراغ داريد؟
فرض كنيد يه ديتابيس داريم كه در يكي از فيلد هاي تيبل هاي آن تاريخ (به ميلادي=datetime) ذخيره مي كنيم به يه قطعه كدي احتياج دارم كه نزديكترين تاريخ به تاريخ كنوني را محاسبه كند و آن را برگرداند.البته من با سرچ كردن در اينترنت يه چيزي پيدا كردم اما نمي دونم چرا متغير closestdate در نهايت مقدار نمي گيره ؟!
//پيدا كردن آخرين زماني كه مشتري سفارش داده است
DateTime NowDate;
DateTime closestDate;
List<DateTime> theDates = new List<DateTime>();//load the date list, obviously
ds = sp.Select_Record("t_Factor", "DateIssuance", "", "", "", "");
foreach (DataRow row in ds.Tables["t_Factor"].Rows)
{
theDates.Add((DateTime)row["DateIssuance"]);
}
NowDate = DateTime.Today; //set to the file date
closestDate = DateTime.Today;
long min = Math.Abs(NowDate.Ticks - theDates[0].Ticks);
long diff;
for (int i = 0; i < theDates.Count; i++)
{
diff = Math.Abs(NowDate.Ticks - theDates[i].Ticks);
if (diff < min)
{
min = diff;
closestDate = theDates[i];
}
}
البته در توضيح بگم كه تابع Select_Record وظيفش فقط بازيابي كردن تاريخ هاي مورد نظر از ديتابيس ميباشد.
به نظر شما اين تابع اشتباه است يا اينكه مشكل از جاي ديگريست؟:متفکر:
آيا شما راه حل بهتري سراغ داريد؟