View Full Version : اختلاف دو تاریخ شمسی
  
alirezamirzahasan
یک شنبه 15 مهر 1386, 13:25 عصر
من دنبال ماژولی میگردم که دو تا تاریخ شمسی را بگیره و اختلاف آنها رو به integer برگردونه
mostafa-sohrablou
شنبه 28 مهر 1386, 19:03 عصر
برای اینکار هر دو تاریخ شمسی را به میلادی تبدیل کن و سپس تاریخ های میلادی را از هم کم کن. به این صورت اختلاف آن دو را پیدا می کنی. با استفاده از ماژول زیر :
 
Public Function s2m(fd As String) As Date
   Dim syy As Integer
   Dim smm As Integer
   Dim sdd As Integer
   Dim val As Long
   Dim By  As Integer
   Dim i  As Integer
   init
  fd = Mid(m3s(date), 1, 2) & Mid(fd, 1, 2) & "/" & Mid(fd, 3, 2) & "/" & Mid(fd, 5, 2)
   If Not fdvalid(fd) Then
      s2m = Format(date, "yyyy/mm/dd")
      Exit Function
   End If
   syy = fdyear(fd)
   smm = fdmon(fd)
   sdd = fdday(fd)
   By = year(sstart)
   val = 0
   While By < syy
      If issleap(By) Then
         val = val + 1
      End If
      val = val + 365
      By = By + 1
   Wend
   For i = 1 To smm - 1
       val = val + smonths(i)
   Next
   val = val + sdd
   s2m = Format(mstart + val - 1, "yyyy/mm/dd")
End Function
hrj1981
شنبه 28 مهر 1386, 19:08 عصر
علیرضاجان سلام 
شمامی توانیدازdllزیراستفاده کنیدکه ماحصل تلاش بچه های اکسین رایانه می باشد.
ضمنا اگر کمی در تالارجستجوکنی مطالب خیلی مفیدی پیدامی کنی
ali_habibi1384
یک شنبه 29 مهر 1386, 19:29 عصر
عزیز دل برادر اینکه کاری نداره می تونی از این روش حساب کنی که مثلا تاریخ 1386/1/12 رو میخوای از 1386/02/10 کم کنی نگاه کن :
x=1386*365+1*31+12
y=1386*365+2*31+10
z=abs(x-y)
منظورمو که فهمیدی؛ یکم تغییراتش بدی به نتیجه می رسی
__siavash__
یک شنبه 29 مهر 1386, 20:37 عصر
عزیز دل برادر اینکه کاری نداره می تونی از این روش حساب کنی که مثلا تاریخ 1386/1/12 رو میخوای از 1386/02/10 کم کنی نگاه کن :
x=1386*365+1*31+12
y=1386*365+2*31+10
z=abs(x-y)
منظورمو که فهمیدی؛ یکم تغییراتش بدی به نتیجه می رسی
برای این کار باید اینو در نظر گرفت بعضی ماه ها 30 روزه هستند بعضی هم 31 روزه و یکی هم 29 روزه در ضمن سالهای کبیسه رو هم باید در نظر گرفت البته میشه این کارو کرد اما باید یه ماژول دقیق براش درست کرد 
خوب انگار ShamsiDLL این اختلاف رو حساب نمیکنه 
چرا شما این کارو نمیکنی که این تاریخ ها رو به میلادی تبدیل کنی بعد با Datediff اختلافشونو بدست بیاری ؟
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.