PDA

View Full Version : سوال: تفاضل دو تاریخ



shocraneh
جمعه 29 خرداد 1388, 20:12 عصر
برای فرمت تاریخ nchar(10 درنظر گرفته ام حال می خواهم تفاضل دو ستون از تاریخ جدولم در sql را , دردیتاگرید بریزم???

Mani_rf
شنبه 30 خرداد 1388, 16:26 عصر
با Nchar نمی توانی دو تاریخ را از هم کم کنی.
باید نوع تعریف شده ات را عوض کنی.

shocraneh
شنبه 30 خرداد 1388, 21:06 عصر
از date هم که نمی شه استفاده کرد پس چی کار کنم ؟؟

arsalansalar
یک شنبه 31 خرداد 1388, 11:24 صبح
از دستور زیر برای سرچ استفاده کن:


from table where roz>=" + c1.Text + " and roz<=" + c4.Text + " and mah >= " + C2.Text + " and mah <= " + C5.Text + " and sal >= " + C3.Text + " and sal <= " + C6.Text + "

Mani_rf
یک شنبه 31 خرداد 1388, 14:07 عصر
اگر Date ذخیره کنی و تو دوتا متغیر Date فراخوانی کنیشون با خود vb.net می توانی از هم کم کنیشون.

یا تاریخ را از حالت روز و ماه سال خارج کن و به روز تبدیل کن و از هم کم کن و دوباره به تاریخ تبدیل کن.






:لبخند:

salehbagheri
یک شنبه 31 خرداد 1388, 23:58 عصر
در ادامه صحبتهاي بالا:

از تابع DateDiff ميتونيد تفاضل دو تاريخ را محاسبه كنيد!

shamsoft
دوشنبه 01 تیر 1388, 03:26 صبح
از این تابع استفاده کن:

Private 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

EX

ShamsiDateDiff("1388-04-01", "1388-04-05", "-")

shocraneh
یک شنبه 28 تیر 1388, 07:45 صبح
یه مشکل وجود داره
من تفاضل تاریخی که تو پایگاه ثبت شده با تاریخ امروز رو می خام وتاریخ امروز
MiladiToShamsi(Now)
است .اگه تاریخ سیستم عوض بشه همه بهم می ریزه .چه طوری می شه تاریخ امروز رو از سرور گرفت

shocraneh
پنج شنبه 01 مرداد 1388, 10:08 صبح
لطفا کمک کنید

reghbali06
پنج شنبه 01 مرداد 1388, 10:52 صبح
از date هم که نمی شه استفاده کرد پس چی کار کنم ؟؟

میشه از date استفاده کرد منتها باید چند متغیر از نوع int تعریف کنی و تفاضل سال دو تاریخ را در یک متغیر ، تفاضل ماهشون در یک تاریخ دیگه وهمین جور تا آخر و با اون متغیر ها در ادامه ی برنامه ات کار کنی

shocraneh
پنج شنبه 01 مرداد 1388, 19:09 عصر
دوست من تفاضل رو خیلی راحت با تابعی که دوستان در بالا گذاشتند به دست اوردم و مشکلی ندارم
سوال من اینه که می خام تاریخ فعلی سیستم رو از سرور بگیرم که اگه تاریخ سیستم کاربر ام اشتباه باشه تفاضل رو درست بده

samirdev
شنبه 03 مرداد 1388, 03:14 صبح
شما می تونی نوع داده را در دیتابیس date تعریف کنی و مقادیر معادل میلادی را در آن ذخیره کنی و هر وقت که نیار شد ابن تاریخ را به کاربر نشان دهی معادل شمسی آن را به کاربر نمایش دهی.
تمام ایزار های لازم برای این کار در دات نت موجود است.

shocraneh
شنبه 03 مرداد 1388, 09:08 صبح
به گمانم دوستان متوجه منظور من نشدن صرفنظر از شیوه ذخیره در هر صورت تاریخ الان رو یه جوری باید داشته باشم , من ازMiladiToShamsi(Now) استفاده می کنم خوب وقتی تاریخ ویندوز درست نباشه تاریخ درست نمی ده دیگه برای همین اگه تاریخ سرورو درست کنم و از سرور بگیرم مشکل حل می شه

shocraneh
دوشنبه 05 مرداد 1388, 08:08 صبح
کسانی که تو کارند بگن اصلا همچین چیزی می شه