PDA

View Full Version : تشکر «TextBox وِیژه» و تغییر آن جهت تاریخ فارسی



namvar
یک شنبه 14 فروردین 1384, 12:02 عصر
سلام به دوستان عزیز
من با اجازه (و تشکر) از نویسندگان مقاله « TextBox ویژه » تصمیم گرفتم با کمی تغییرات این TextBox ویژه را بقول معروف ویژه تر !!!! :wink: کنم. یا بعبارتی آنرا برای دریافت تاریخ فارسی تنظیم کنم . کدش را میگذارم اگر کسی از دوستان میتواند آنرا تکمیل کند ممنون خواهیم شد :sunglass:

علیرضا مداح
یک شنبه 14 فروردین 1384, 18:21 عصر
سلام .
باتشکر ، لطفا" فایلهای پروژه را به صورت یونیکد ذخیره کرده و مجددا" آپلود نمایید .

namvar
دوشنبه 15 فروردین 1384, 07:10 صبح
با عرض پوزش سعی کردم فایل ها به ( utf-8 with codepage 65001 ) ذخیره نمایم

majid_afra222
دوشنبه 15 فروردین 1384, 19:56 عصر
سلام
من در مورد TextBox ویژه چیزی نمیدونم
ولی تو این کد دلیل گرفتن تاریخ عربی رو نفهمیدم :گیج:
با این حال تابعی برای تبدیل تاریخ شمسی به میلادی در دلفی نوشته بودم که تبدیلش کردم و براتون میفرستم (چون تابع تبدیل موجود اشتباه بود در ضمن کد ورود اعداد در تکست باکس هم اشکال داره. کاراکتر "/" نمیگیره و اشتباه میشه)
اینم کد تبدیل تاریخ شمسی به میلادی


Function GetdateMilady(ByVal sYear As Integer, ByVal sMonth As Integer, ByVal sDay As Integer) As String
Dim GreMonths(12) As Integer
Dim HijMonths(12) As Integer
Dim i As Integer
Dim HijLeap As Boolean
Dim GreYear, GreMonth, GreDay As Integer
Dim HijDay As Integer

GreMonths(1) = 31 : GreMonths(2) = 28 : GreMonths(3) = 31 : GreMonths(4) = 30
GreMonths(5) = 31 : GreMonths(6) = 30 : GreMonths(7) = 31 : GreMonths(8) = 31
GreMonths(9) = 30 : GreMonths(10) = 31 : GreMonths(11) = 30 : GreMonths(12) = 31

HijMonths(1) = 31 : HijMonths(2) = 31 : HijMonths(3) = 31 : HijMonths(4) = 31
HijMonths(5) = 31 : HijMonths(6) = 31 : HijMonths(7) = 30 : HijMonths(8) = 30
HijMonths(9) = 30 : HijMonths(10) = 30 : HijMonths(11) = 30

If ((Str(sYear) <> "") And (Str(sMonth) <> "") And (Str(sDay) <> "")) Then
HijLeap = False
If (((sYear + 1) Mod 4) = 0) Then 'آیا سال کبیسه است
HijLeap = True
End If
GreYear = sYear + 621

If HijLeap Then 'اگر کبیسه بود
HijMonths(12) = 30
HijDay = 0
For i = 1 To sMonth - 1
HijDay = HijDay + HijMonths(i)
Next
HijDay = HijDay + sDay
If (sMonth >= 11) Or ((sMonth >= 10) And (sDay >= 12)) Then
GreYear += 1
HijDay = HijDay - 365
End If
HijDay = HijDay + 78
i = 1
While ((HijDay > GreMonths(i)) And (i <= 12))
HijDay = HijDay - GreMonths(i)
i += 1
End While
If HijDay = 0 Then
i -= 1
HijDay = GreMonths(i)
If i = 0 Then
i = 12
End If
GreMonth = i
GreDay = HijDay
End If
Else 'اگر کبیسه نبود
HijMonths(12) = 29
HijDay = 0
For i = 1 To sMonth - 1
HijDay = HijDay + HijMonths(i)
Next
HijDay = HijDay + sDay
If (sMonth >= 11) Or ((sMonth >= 10) And (sDay >= 12)) Then
GreYear += 1
HijDay = HijDay - 365
End If
HijDay = HijDay + 79

i = 1
While ((HijDay > GreMonths(i)) And (i <= 12))
HijDay = HijDay - GreMonths(i)
i += 1
End While
If HijDay = 0 Then
i -= 1
HijDay = GreMonths(i)
If i = 0 Then
i = 12
End If
End If
End If
GreMonth = i
GreDay = HijDay

GetdateMilady = Str(GreYear) + "/" + Str(GreMonth) + "/" + Str(GreDay)
Else
GetdateMilady = Date.Today.ToString()
End If
End Function

با همون فرمت تکست باکس ویژه


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim sYear As Integer = Val(Mid(TextBox1.Text, 1, 4))
Dim sMonth As Integer = Val(Mid(TextBox1.Text, 6, 2))
Dim sDay As Integer = Val(Mid(TextBox1.Text, 9, 2))
MsgBox(GetdateMilady(sYear, sMonth, sDay))
End Sub