PDA

View Full Version : سوال: تاريخ شمسي بدون dll و ocx



RezaS_1354
سه شنبه 31 اردیبهشت 1387, 14:56 عصر
از دوستان كسي هست كه يك تاريخ شمسي بي دردسر و صحيح بدون استفاده از dll و ocx
داشته باشد لطفا از جستجو نگوئيد مطمئنا بعد از اين همه مدت قوانين را ميدانم هر كس فقط ميتواند , كمك كند يك تاريخ درست حسابي كد يا لينكشو محبت كند با سپاس

maryamb
سه شنبه 31 اردیبهشت 1387, 15:01 عصر
من از این نمونه خیلی راضی ام

RezaS_1354
سه شنبه 31 اردیبهشت 1387, 15:27 عصر
من از این نمونه خیلی راضی ام

ممنون از لطفتون اما اين نمونه يك روز عقب هست اصلاح شده يا مورد ديگري نداريد
با سپاس
رضا

ASKaffash
سه شنبه 31 اردیبهشت 1387, 15:50 عصر
با سلام
از این تابع استفاده کنید دوسال پیش نوشته ام
Public Function M2S(ByVal MiladiDate As Variant) As String
MiladiDate = Format(MiladiDate, "YYYY/MM/DD")
YourYYYY = Val(Mid(MiladiDate, 1, 4))
YourMM = Val(Mid(MiladiDate, 6, 2))
YourDD = Val(Mid(MiladiDate, 9, 2))
Kabise1 = IIf(YourYYYY Mod 4 = 0, 1, 0)
MArray = Array(0, 31, 28 + Kabise1, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)
Select Case True
Case MiladiDate <= "2005/12/31"
Y2K = 1
Case Else
Y2K = 0
End Select
NoOfDay2Date = 286 + Y2K + YourDD
For iMM = 1 To YourMM - 1
NoOfDay2Date = NoOfDay2Date + MArray(iMM)
Next
NewYYYY = YourYYYY - 622
Kabise2 = IIf(NewYYYY Mod 4 = 3, 1, 0)
ThisYear = 365 + Kabise2
If NoOfDay2Date > ThisYear Then
NewYYYY = NewYYYY + 1
NoOfDay2Date = NoOfDay2Date - ThisYear
End If
SArray = Array(0, 31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29 + Kabise2)
SumOfMonth = 0
For iMM = 1 To 12
If NoOfDay2Date <= SumOfMonth + SArray(iMM) Then
NewMM = iMM
NewDD = NoOfDay2Date - SumOfMonth
Exit For
Else
SumOfMonth = SumOfMonth + SArray(iMM)
End If
Next
M2S = SetZero(NewYYYY, 4) + "/" + SetZero(NewMM, 2) + "/" + SetZero(NewDD, 2)
End Function

RezaS_1354
سه شنبه 31 اردیبهشت 1387, 17:46 عصر
ازدوستان كسي نيست كه يك تاريخ شمسي درست حسابي داشته باشد يا حداقل تاريخي كه دوستمون maryamb گذاشته اصلاح كند ممنون ميشوم .

ASKaffash
سه شنبه 31 اردیبهشت 1387, 17:50 عصر
با سلام
تابع را تست کردی ؟ درست کار میکنه روی سیستمهای زیاد عملیاتی نصب است از درون برنامهای عملیاتی موجودم استخراج کردم

ali_habibi1384
سه شنبه 31 اردیبهشت 1387, 20:47 عصر
این نمونه ماژول رو ببین
http://barnamenevis.org/forum/attachment.php?attachmentid=18001&stc=1&d=1211301988

RezaS_1354
سه شنبه 31 اردیبهشت 1387, 21:23 عصر
علي جان باز تو دم شما گرم بدادم رسيدي در ضمن ميتواني محبت كني همين تاريخ را به اون ايام هفته و ماه هاي شمسي را اضافه كني اگر اين زحمت را بكشي خيلي ازت ممنون ميشوم بهر حال از دوستون ASKaffash هم ممنون كدش مشكلي نداشت همانطور كه گفتم تاريخ شمسي با ماه هاي شمسي و ايام هفته را ميخواستم اون نمونه اي كه دوستمون maryamb لطف كرده بود همه چيزش خوبه فقط يك روز عقب هست اگر همون رو هم اصلاح كنيد يا به كد علي اقا اضافه كنيد فكر كنم مشكل حل بشه با تشكر
رضا

ali_habibi1384
چهارشنبه 01 خرداد 1387, 02:20 صبح
سلام
در اسرع وقت جوابتون رو می دم.

maryamb
پنج شنبه 02 خرداد 1387, 09:46 صبح
کدی که من گذاشته بودم تا حالا درست کار می کرد از ماه اردیبهشت که ماه میلادی 28 روزه هست یه روز عقب افتاد !!!
اساتید اگه بتونن اصلاح کنن ممنون می شم
خودم هم می رم سراغش ببینم درست می شه

Mbt925
پنج شنبه 02 خرداد 1387, 14:36 عصر
کدی که من گذاشته بودم تا حالا درست کار می کرد از ماه اردیبهشت که ماه میلادی 28 روزه هست یه روز عقب افتاد !!!
اساتید اگه بتونن اصلاح کنن ممنون می شم
خودم هم می رم سراغش ببینم درست می شه

بی شک کد شما سال های کبیسه رو درنظر نگرفته !

hasanain
پنج شنبه 02 خرداد 1387, 19:15 عصر
این سورس کامل تبدیل تاریخهاست، از کبیسه هم پشتیبانی میکند. برنامه نمونه آقای وجودی هم کنارش هست.