PDA

View Full Version : جستجو روی فاصله بین دوتا تاریخ



A_1397
شنبه 06 خرداد 1391, 14:36 عصر
سلام. دوستان یه فیلد دارم برای ذخیره تاریخ که از نوع char هستش. حالا برای جستجو روی این فیلد، دوتا ماسک تکست باکس گذاشتم که میخام رکوردهایی که تاریخشون بین دوتا تاریخ وارد شده در ماسک تکست هام هست برگردونده بشه. از چه کدی برای اینکار میتونم استفاده کنم؟

فرید نجفلو
شنبه 06 خرداد 1391, 14:55 عصر
سلام
اگه جستجو می کردید من در هر دو سمت برنامه و SQL Server توابع مورد نیازتون رو قبلا ارسال کردم

در سطح برنامه:
اینجا پست 5 (http://barnamenevis.org/showthread.php?341959-بدست-آوردن-روزهای-مابین-دو-تاریخ-شمسی-(-تفاضل-روزهای-مابین-دو-تاریخ-شمسی-)&p=1508461&viewfull=1#post1508461)
در سطح دیتابیس:
اینجا پست 2 (http://barnamenevis.org/showthread.php?341137-هشدار-قبل-از-سر-رسید-تاریخ&p=1504948&viewfull=1#post1504948)

A_1397
یک شنبه 07 خرداد 1391, 12:00 عصر
سلام
اگه جستجو می کردید من در هر دو سمت برنامه و SQL Server توابع مورد نیازتون رو قبلا ارسال کردم

[/URL]

سلام دوست عزیز. برنامه ها و توابعی که نوشته بودین رو دیدم. یه جایی به مشکل برخوردم:
87529 تاریخ های زیادی رو تست کردم ولی روی 29/02/1391 خطا میگیره.

فرید نجفلو
یک شنبه 07 خرداد 1391, 12:28 عصر
سلام
دوست عزیز شما پارامتر ها رو درست نفرستادید!
کار راحت رو سخت کردید چون نیازی به تبدیل (CDate) تاریخ ها نیست شما مستقیما تاریخ شمسی رو به صورت یک رشته بفرستید
همون طور هم که می بینید پارامتر ها از نوع String هستن نه Date

ali_najari
سه شنبه 09 خرداد 1391, 10:47 صبح
دوست عزیز این تابع رو قبلا نوشتم واسه اینکار
شما میتونید به راحتی ازش استفاده کنید

''' <summary>
''' محاسبه روزهای سپری شده بین دو تاریخ شمسی
''' </summary>
''' <param name="Date1">تاریخ اول که تاریخ کوچکتر میباشد</param>
''' <param name="Date2">تاریخ دوم که تاریخ بزرگتر میباشد</param>
''' <param name="Seperator">جدا کننده روز و ماه و سال</param>
''' <returns></returns>
''' <remarks></remarks>

Public Function ShamsiDateDiff(ByVal Date1 As String, ByVal Date2 As String, Optional ByVal Seperator As String = "/") As Integer

Dim pc As New Globalization.PersianCalendar

Dim da1 = Date1.Split(Seperator)
Dim da2 = Date2.Split(Seperator)

Dim dt1 = pc.ToDateTime(da1(0), da1(1), da1(2), 0, 0, 0, 0)
Dim dt2 = pc.ToDateTime(da2(0), da2(1), da2(2), 0, 0, 0, 0)

Return DateDiff(DateInterval.Day, dt1, dt2)

End Function