صفحه 1 از 9 123 ... آخرآخر
نمایش نتایج 1 تا 40 از 344

نام تاپیک: مرجع حل مشکلات زبان فارسی و سورسهای مربوطه

  1. #1

    مرجع حل مشکلات زبان فارسی و سورسهای مربوطه

    با سلام خدمت همه برنامه نویسان عزیز
    در این تاپیک راه حل های خود را جهت نمایش صحیح حروف فارسی٬ تایپ فارسی بدون نیاز به ویندوز فارسی٬ استفاده از تاریخ شمسی٬ راست چین کردن نوشته ها در برنامه ها و سایر مطالب مربوط به زبان فارسی در 6 VB را بنویسید (مشابه کاری که در بخش Dot Net صورت گرفته است).
    در صورتی که قبلا در تاپیکی در یکی از زمینه های فوق به نتیجه رسیده اید و یا مطلبی هرچند ساده و مشخص در این مورد مشاهده کرده اید٬ مطالب صحیح و بکار رفته در آن تاپیک را با ذکر نام شخص راهنمایی کننده در اینجا بنویسید.

    این کار علاوه بر اینکه باعث نظم بیشتر در بخش می شود٬ این تاپیک را به مرجعی برای حل مشکلات زبان فارسی در 6 VB مبدل ساخته٬ از ایجاد تاپیکهای تکراری جلوگیری می کند.

  2. #2

    فعال نمودن امکان تایپ فارسی در ویندوز XP:

    فعال نمودن امکان تایپ فارسی در ویندوز XP

    دقت داشته باشید به هنگام نصب زبان فارسی ٬ ممکن است به سی‌دی نصب ویندوز نیاز پیدا کنید .

    1. به Control Panel ویندوز بروید .

    2. به بخش Regional and Language Options بروید :
    حالت غیر کلاسیک :
    الف) حال گزینه Regional and Language Options را کلیک نمایید .
    ب) در پنجره باز شده گزینه Date, Time, Language, and Regional Options را کلیک کنید .

    حالت کلاسیک :
    روی آیکون Regional and Language Options دوبار کلیک کنید .

    3. در پنجره باز شده به تب Languages بروید .

    4. حال گزینه Install files for complex script and right-to left languages (including Thai) را تیک زده ( با کلیک بر روی آن ) ٬ روی دکمه Apply کلیک بزنید .



    6. به برگه‌ی Advanced بروید و در لیست انتخاب زبان٬ زبان Farsi را انتخاب نمایید .



    7. سپس به برگه‌ی Regional Options بازگردید و در لیست انتخاب زبان ٬ Farsi را انتخاب کنید .

    8. در لیست پایینی ٬ کشور Iran را انتخاب کنید .

    9. در آخر دکمه Apply و سپس OK را کلیک نمایید .


    آخرین ویرایش به وسیله M-Gheibi : یک شنبه 24 دی 1385 در 18:10 عصر دلیل: بازگردانی تصاویر حذف شده

  3. #3

    استفاده از RTL

    برای استفاده از امکان Right to Left در برنامه ها فایل VBAME.DLL موجود در پوشه سیستم را به همراه برنامه خود قرار دهید.

  4. #4
    تبدیل صفحه کلید به فارسی در ویژوال بیسیک 6

    ابتدا تابع زیر را تعریف کنید :
    Public Declare Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal flags As Long) As Long
    ویندوز پارسا 99 ، اکس پی و 2000 که فارسی نصب شده باشد :
     Dim xx As Long
    xx = LoadKeyboardLayout("00000429", 1)
    ویندوز پارسا 2001 و امثال آن :
    Dim xx As Long
    xx = LoadKeyboardLayout("00000401", 1)
    کد 401 برای عربی عربستان است که در ویندوز پارسا 2001 به جای فارسی به کار می رود .
    آخرین ویرایش به وسیله M-Gheibi : یک شنبه 24 دی 1385 در 18:13 عصر دلیل: اصلاح شکل ظاهری

  5. #5

    تبدیل عدد به حروف (Num to Str)

    کد زیر برای تبدیل مقدار عددی به حروف است .
    به این نکته دقت داشته باشید که حداکثر مقدار قابل قبول برای این تابع 999,999,999,999 ( نهصد و نود و نه میلیارد و نهصد و نود و نه میلیون و نهصد و نود نه هزار و نهصد و نود و نه ) می باشد .
    تابع زیر نوشته جناب آقای بابک بخشایش هست .
    Option Explicit
    Private Const hezar = " هزار"
    Private Const melun = " میلیون"
    Private Const melyard = " میلیارد"
    Private Const va = " و "

    Public Function heji_adad(ByVal adad As Double) As String
    Dim hooroof As String
    Dim SS As Integer 'sadgan
    Dim hh As Integer 'hezargan
    Dim mm As Integer 'melungan
    Dim yy As Integer 'melyardgan
    Dim STRadad As String
    Dim LENadad As Integer

    STRadad = Str(Val(Str(adad)))
    LENadad = Len(STRadad)

    Select Case adad
    Case Is = 0
    hooroof = "صفر"
    Case 1 To 999
    hooroof = Adad_Heji(adad)
    Case 1000 To 999999
    If (adad Mod 1000 = 0) Then hooroof = Adad_Heji(Int(adad / 1000)) + hezar
    If (adad Mod 1000 <> 0) Then hooroof = Adad_Heji(Int(adad / 1000)) + hezar + va + (Adad_Heji(adad Mod 1000))
    Case 1000000 To 999999999
    SS = Val(Right$(STRadad, 3))
    hh = Val(Mid$(STRadad, LENadad - 5, 3))
    mm = Val(Left$(STRadad, LENadad - 6))
    If (SS = 0 And hh = 0) Then hooroof = Adad_Heji(mm) + melun
    If (SS = 0 And hh <> 0) Then hooroof = Adad_Heji(mm) + melun + va + Adad_Heji(hh) + hezar
    If (SS <> 0 And hh = 0) Then hooroof = Adad_Heji(mm) + melun + va + Adad_Heji(SS)
    If (SS <> 0 And hh <> 0) Then hooroof = Adad_Heji(mm) + melun + va + Adad_Heji(hh) + hezar + va + Adad_Heji(SS)
    Case 1000000000 To 999999999999#
    SS = Val(Right$(STRadad, 3))
    hh = Val(Mid$(STRadad, LENadad - 5, 3))
    mm = Val(Mid$(STRadad, LENadad - 8, 3))
    yy = Val(Left$(STRadad, LENadad - 9))
    If (SS = 0 And hh = 0 And mm = 0) Then hooroof = Adad_Heji(yy) + melyard
    If (SS = 0 And hh = 0 And mm <> 0) Then hooroof = Adad_Heji(yy) + melyard + va + Adad_Heji(mm) + melun
    If (SS = 0 And hh <> 0 And mm <> 0) Then hooroof = Adad_Heji(yy) + melyard + va + Adad_Heji(mm) + melun + va + Adad_Heji(hh) + hezar
    If (SS <> 0 And hh <> 0 And mm <> 0) Then hooroof = Adad_Heji(yy) + melyard + va + Adad_Heji(mm) + melun + va + Adad_Heji(hh) + hezar + va + Adad_Heji(SS)
    Case Is > 999999999999#
    hooroof = "عدد وارد شده بزرگتر از 999999999999 است"
    End Select
    heji_adad = hooroof
    End Function

    Private Function Adad_Heji(ByVal adad As Integer) As String
    Dim yekan As Byte
    Dim dahgan As Byte
    Dim sadgan As Byte
    Dim behooroof As String
    Dim heji(19) As String
    Dim heji_dahgan(9) As String
    Dim heji_sadgan(9) As String
    '-------------------------------
    heji(1) = "یک": heji(2) = "دو": heji(3) = "سه": heji(4) = "چهار": heji(5) = "پنج"
    heji(6) = "شش": heji(7) = "هفت": heji(8) = "هشت": heji(9) = "نه": heji(10) = "ده"
    heji(11) = "یازده": heji(12) = "دوازده": heji(13) = "سیزده": heji(14) = "چهارده": heji(15) = "پانزده"
    heji(16) = "شانزده": heji(17) = "هفده": heji(18) = "هیجده": heji(19) = "نوزده"
    '-------------------------------
    heji_dahgan(1) = "ده"
    heji_dahgan(2) = "بیست"
    heji_dahgan(3) = "سی": heji_dahgan(4) = "چهل": heji_dahgan(5) = "پنجاه"
    heji_dahgan(6) = "شصت": heji_dahgan(7) = "هفتاد": heji_dahgan(8) = "هشتاد"
    heji_dahgan(9) = "نود"
    '-------------------------------
    heji_sadgan(1) = "یکصد": heji_sadgan(2) = "دویست": heji_sadgan(3) = "سیصد"
    heji_sadgan(4) = "چهارصد": heji_sadgan(5) = "پانصد": heji_sadgan(6) = "ششصد"
    heji_sadgan(7) = "هفتصد": heji_sadgan(8) = "هشتصد": heji_sadgan(9) = "نهصد"
    '-------------------------------
    yekan = adad Mod 10
    dahgan = adad Mod 100
    sadgan = Int(adad / 100)
    '-------------------------------
    If dahgan < 20 Then
    If (sadgan = 0) Then behooroof = heji(dahgan)
    If (sadgan <> 0) Then behooroof = heji_sadgan(sadgan) + va + heji(dahgan)
    If (yekan = 0 And dahgan = 0) Then behooroof = heji_sadgan(sadgan)
    Else
    dahgan = (adad Mod 100) - yekan
    If (sadgan = 0 And yekan = 0) Then behooroof = heji_dahgan(dahgan / 10)
    If (sadgan = 0 And yekan <> 0) Then behooroof = heji_dahgan(dahgan / 10) + va + heji(yekan)
    If (sadgan <> 0 And yekan = 0) Then behooroof = heji_sadgan(sadgan) + va + heji_dahgan(dahgan / 10)
    If (sadgan <> 0 And yekan <> 0) Then behooroof = heji_sadgan(sadgan) + va + heji_dahgan(dahgan / 10) + va + heji(yekan)
    End If

    Adad_Heji = behooroof
    End Function
    طرز استفاده :
    Text1.text = heji_adad(156489)
    با اجرای کد بالا عبارت "یکصد و پنجاه و شش هزار و چهارصد و هشتاد و نه" در Text1 نمایش داده خواهد شد .
    آخرین ویرایش به وسیله M-Gheibi : یک شنبه 24 دی 1385 در 18:18 عصر دلیل: اصلاح

  6. #6

    تایپ فارسی با کدپیج ایران سیستم

    کد زیر را در ماژول قرار دهید :

    Public Text_Object As Object
    Public max_index As Integer
    Public OldScroll As Integer
    Public MatnHa() As String
    Public CurrentText As Integer
    Public IsFarsi As Boolean
    Sub Change_Lang(KeyCode, Shift)
    If KeyCode = vbKeyF2 And Shift = 1 Then
    IsFarsi = Not (IsFarsi)
    End If
    End Sub
    Function convert_txt(getch As Integer)
    Select Case LCase(Chr(getch))
    Case "q": getch = 174
    Case "w": getch = 172
    Case "e": getch = 153
    Case "r": getch = 236
    Case "t": getch = 234
    Case "y": getch = 232
    Case "u": getch = 228
    Case "i": getch = 251
    Case "o": getch = 161
    Case "p": getch = 159
    Case "[", "{": getch = 155
    Case "]", "}": getch = 157
    Case "a": getch = 170
    Case "s": getch = 168
    Case "d": getch = 254
    Case "f": getch = 147
    Case "g": getch = 243
    Case "h":
    If Chr(getch) = "h" Then
    getch = 144
    Else
    getch = 141
    End If
    Case "j": getch = 151
    Case "k": getch = 247
    Case "l": getch = 245
    Case ";": getch = 238
    Case "'": getch = 240
    Case "z": getch = 224
    Case "x": getch = 175
    Case "c": getch = 165
    Case "v": getch = 164
    Case "b": getch = 163
    Case "n": getch = 162
    Case "m":
    If Chr(getch) = "m" Then
    getch = 142
    Else
    getch = 143
    End If
    Case ",": getch = 248
    Case "`": getch = 149
    Case "\": getch = 166
    Case "?": getch = 140
    Case "0", "1", "2", "3", "4", "5", "6", "7", "8", "9": getch = getch + 80
    Case "!": getch = 33
    Case "@": getch = 34
    Case "#": getch = 35
    Case "$": getch = 197
    Case "%": getch = 37
    Case "^": getch = 58
    Case "&": getch = 138
    Case "*": getch = 120
    Case "(": getch = 40
    Case ")": getch = 41
    'Case ".": getch = 46
    End Select
    'zero to point!
    'If getch = 128 Then getch = 46
    If getch = 128 Then getch = 189
    convert_txt = getch
    End Function
    Function Convert_Num(getch As Integer)
    Convert_Num = IIf(getch > 57, 0, getch + IIf(getch > 47, 80, 0))
    If getch = 46 Then Convert_Num = 47
    'zero to point!
    'If Convert_Num = 128 Then Convert_Num = 46
    If Convert_Num = 128 Then Convert_Num = 189
    End Function
    Sub Txt_Change()
    If Len(Text_Object.Text) > 1 And Text_Object.SelStart > 0 Then
    'Detect Last Character!
    Text_Object.SelStart = Text_Object.SelStart - 1
    Text_Object.SelLength = 2
    ' If it was number!
    If Asc(Left(Text_Object.SelText, 1)) = 189 Or (Asc(Left(Text_Object.SelText, 1)) > 127 And Asc(Left(Text_Object.SelText, 1)) < 138) Then
    'If Asc(Left(Text_Object.SelText, 1)) = 189 Or Asc(Left(Text_Object.SelText, 1)) = 46 Or Asc(Left(Text_Object.SelText, 1)) = 47 Or (Asc(Left(Text_Object.SelText, 1)) > 127 And Asc(Left(Text_Object.SelText, 1)) < 138) Then
    Text_Object.SelStart = Text_Object.SelStart + 1
    Text_Object.SelLength = 0
    Exit Sub
    End If
    If Asc(Left(Text_Object.SelText, 1)) = 32 Then
    Select Case Asc(Right(Text_Object.SelText, 1))
    Case 159:
    Text_Object.SelText = " " + Chr(190)
    Text_Object.SelStart = Text_Object.SelStart - 1
    Case 142:
    Text_Object.SelText = " " + Chr(143)
    Text_Object.SelStart = Text_Object.SelStart - 1
    Case 147, 149, 151, 153, 155, 157, 168, 170, 172, 174, 227, 231, 238, 234, 236, 238, 240, 245, 247, 250:
    Text_Object.SelText = " " + Chr(Asc(Right(Text_Object.SelText, 1)) - 1)
    Text_Object.SelStart = Text_Object.SelStart - 1
    Case 161:
    Text_Object.SelText = " " + Chr(176)
    Text_Object.SelStart = Text_Object.SelStart - 1
    Case 243, 251, 254:
    Text_Object.SelText = " " + Chr(Asc(Right(Text_Object.SelText, 1)) - 2)
    Text_Object.SelStart = Text_Object.SelStart - 1
    Case 228, 232:
    Text_Object.SelText = " " + Chr(Asc(Right(Text_Object.SelText, 1)) - 3)
    Text_Object.SelStart = Text_Object.SelStart - 1
    End Select

    Else
    If Asc(Left(Text_Object.SelText, 1)) = 228 Or Asc(Left(Text_Object.SelText, 1)) = 232 Or Asc(Left(Text_Object.SelText, 1)) = 251 Then
    Select Case Asc(Right(Text_Object.SelText, 1))
    Case 243, 245, 247, 249, 250, 251, 254, 142, 147, 149, 151, 153, 155, 157, 159, 161, 168, 170, 172, 174, 175, 224, 227, 228, 231, 232, 234, 236, 238, 240:
    Select Case Asc(Left(Text_Object.SelText, 1))
    Case 228: Text_Object.SelText = Chr(227) + Right(Text_Object.SelText, 1)
    Case 232: Text_Object.SelText = Chr(231) + Right(Text_Object.SelText, 1)
    Case 251: Text_Object.SelText = Chr(250) + Right(Text_Object.SelText, 1)
    End Select
    Text_Object.SelStart = Text_Object.SelStart - 1
    End Select
    Else
    Select Case Asc(Right(Text_Object.SelText, 1))
    Case 243:
    If Asc(Left(Text_Object.SelText, 1)) = 144 Then
    Text_Object.SelText = Chr(242)
    End If
    Case 142, 147, 149, 151, 153, 155, 157, 159, 161, 168, 170, 172, 174, 175, 224, 227, 228, 231, 232, 234, 236, 238, 240, 245, 247, 250, 251, 254:
    Text_Object.SelLength = 1
    If Asc(Text_Object.SelText) = 144 Then
    Text_Object.SelText = Chr(145)
    End If
    End Select
    End If
    End If
    Text_Object.SelStart = Text_Object.SelStart + 1
    End If
    If Text_Object.SelStart <> 0 Then
    Text_Object.SelStart = Text_Object.SelStart - 1
    End If
    If Len(Text_Object) = 1 Then
    If Asc(Left(Text_Object, 1)) < 138 And Asc(Left(Text_Object, 1)) > 127 Then
    Text_Object.SelStart = 1
    End If
    End If
    End Sub
    در اینجا فرض میکنیم که در برنامه ما چند TextBox وجود دارد . به دلیل اینکه نوشتن کد فعال کردن زبان فارسی برای هر TextBox کمی غیر معقول هست و ... ٬ نام جعبه های متنی خود را به شکل آرایه می نویسیم . بدین شکل :

    text(0)
    text(1)
    text(2)
    ...
    حال نوبت به کد فرم اصلی می رسد :
    Private Sub Form_Load()
    IsFarsi = True
    End Sub

    Private Sub Text_Change(Index As Integer)
    If IsFarsi = True Then
    Set Text_Object = Text(Index)
    Txt_Change
    End If
    End Sub
    Private Sub Text_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)
    Call Change_Lang(KeyCode, Shift)
    End Sub
    Private Sub Text_KeyPress(Index As Integer, KeyAscii As Integer)
    If IsFarsi = True Then
    If KeyAscii = 13 Then
    KeyAscii = 0
    'Call SetF(Index, 2)
    Else
    KeyAscii = convert_txt(KeyAscii)
    End If
    End If
    If KeyAscii = 65 Then KeyAscii = 191
    If KeyAscii = 90 Then KeyAscii = 192
    If KeyAscii = 67 Then KeyAscii = 193
    If KeyAscii = 83 Then KeyAscii = 194
    If KeyAscii < 91 And KeyAscii > 64 Then KeyAscii = KeyAscii + 32
    End Sub
    برای استفاده از برنامه فوق به فونت با کدپیج ایران سیستم نیاز دارید که در فایل ضمیمه چندتا از اونها رو برای دانلود گذاشتم .
    آخرین ویرایش به وسیله M-Gheibi : یک شنبه 24 دی 1385 در 18:20 عصر دلیل: اصلاح

  7. #7

    تقویم شمسی در ComboBox

    همانطور که در تصویر مشاهده می کنید این کنترل یک تقویم شمسی در Combobox باز می کند که با کلیک روی هر روز آن تاریخ آن روز را به شما می دهد.
    <p align="center"></p>
    کاری از محمد تاجیک

  8. #8

    تایپ فارسی در ویندوز بدون تغییر زبان

    با استفاده از برنامه نومنه زیر که نوشته شده توسط جناب نصیری هست٬ می تونید در ویندوزهای با قابلیت تایپ فارسی بدون تغییر زبان به تایپ فارسی بپردازید. مطابق تصویر زیر:
    <p align="center"></p>

  9. #9

    تایپ فارسی با کدپیج ایران سیستم 2

    با استفاده از نمونه کد زیر می تونید کنترلی تهیه کنید که با کدپیج ایران سیستم تایپ فارسی انجام می دهد.
    <p align="center">
    </p>
    برنامه نویس : سید مسعود مازار

  10. #10
    کد زیر برای تبدیل مقدار عددی به حروف است.
    به این نکته دقت داشته باشید که حداکثر مقدار قابل قبول برای این تابع 999,999,999,999 (نهصد و نود و نه میلیارد و نهصد و نود و نه میلیون و نهصد و نود نه هزار و نهصد و نود و نه) می باشد.
    تابع زیر نوشته جناب آقای بابک بخشایش هست.
    سلام آقا مسعود
    دست شما درد نکنه خیلی نکات جالبی هستن
    ولی راجع به این کدی که گذاشتین می خواستم ببینم که آیا کدی با تبدیل اعشار (تا دو رقم) رو هم شما یا کسی از دوستان دارن یا نه چون من بهش احتیاج داشتم
    یعنی مثلا 10.5 رو بنویسه ده و نیم
    ممنون از شما و همه دوستان :oops:
    :thnx:

  11. #11
    کاربر دائمی
    تاریخ عضویت
    بهمن 1382
    محل زندگی
    فعلا ایران - فعلا تهران
    پست
    2,628
    کد زیر هم برای تقویم درست شده هرچند ممکنه که بطور بهینه کار نشده باشه
    امامطمئن باشید که درست کار میکنه چند جایی که از اون استفاده میشه عبارتند از
    معاونت مهندسی شهرداری ؛ بیمه آسیا ؛ بیمه دانا و چند شرکت بزرگ و معتبر که
    مسائل تقویمی رو با این کدها حل و فصل کردن


    Public Function Fa_Day&#40;En_Date As String&#41; As String
    Select Case Weekday&#40;En_Date&#41;
    Case 1
    Fa_Day = "یکشنبه"
    Case 2
    Fa_Day = "دوشنبه"
    Case 3
    Fa_Day = "سه شنبه"
    Case 4
    Fa_Day = "چهارشنبه"
    Case 5
    Fa_Day = "پنجشنبه"
    Case 6
    Fa_Day = "جمعه"
    Case 7
    Fa_Day = "شنبه"
    End Select
    End Function

    Public Function Fa_Date&#40;En_Date As String&#41; As String
    Dim The_Select As Integer
    Dim The_Year As Integer
    Dim The_Month As Integer
    Dim The_Day As Integer
    The_Year = CInt&#40;Mid&#40;En_Date, 7, 4&#41;&#41;
    The_Month = CInt&#40;Mid&#40;En_Date, 1, 2&#41;&#41;
    The_Day = CInt&#40;Mid&#40;En_Date, 4, 2&#41;&#41;

    If &#40;The_Year Mod 4 = 0&#41; Then
    The_Select = 1
    Else
    The_Select = 2
    End If

    If &#40;&#40;The_Year - 1&#41; Mod 4 = 0&#41; Then
    The_Select = 3
    End If

    If The_Select = 1 Then
    '------------------------------------------------------
    Select Case The_Month
    Case 1&#58; Select Case The_Day
    Case 1 To 20&#58; The_Day = The_Day + 10
    The_Month = 10
    The_Year = The_Year - 622
    Case 21 To 31&#58; The_Day = The_Day - 20
    The_Month = 11
    The_Year = The_Year - 622
    End Select
    Case 2&#58; Select Case The_Day
    Case 1 To 19&#58; The_Day = The_Day + 11
    The_Month = 11
    The_Year = The_Year - 622
    Case 20 To 29&#58; The_Day = The_Day - 19
    The_Month = 12
    The_Year = The_Year - 622
    End Select
    Case 3&#58; Select Case The_Day
    Case 1 To 19&#58; The_Day = The_Day + 10
    The_Month = 12
    The_Year = The_Year - 622
    Case 20 To 31&#58; The_Day = The_Day - 19
    The_Month = 1
    The_Year = The_Year - 621
    End Select
    Case 4&#58; Select Case The_Day
    Case 1 To 19&#58; The_Day = The_Day + 12
    The_Month = 1
    The_Year = The_Year - 621
    Case 20 To 30&#58; The_Day = The_Day - 19
    The_Month = 2
    The_Year = The_Year - 621
    End Select
    Case 5&#58; Select Case The_Day
    Case 1 To 20&#58; The_Day = The_Day + 11
    The_Month = 2
    The_Year = The_Year - 621
    Case 21 To 31&#58; The_Day = The_Day - 20
    The_Month = 3
    The_Year = The_Year - 621
    End Select
    Case 6&#58; Select Case The_Day
    Case 1 To 20&#58; The_Day = The_Day + 11
    The_Month = 3
    The_Year = The_Year - 621
    Case 21 To 30&#58; The_Day = The_Day - 20
    The_Month = 4
    The_Year = The_Year - 621
    End Select
    Case 7&#58; Select Case The_Day
    Case 1 To 21&#58; The_Day = The_Day + 10
    The_Month = 4
    The_Year = The_Year - 621
    Case 22 To 31&#58; The_Day = The_Day - 21
    The_Month = 5
    The_Year = The_Year - 621
    End Select
    Case 8&#58; Select Case The_Day
    Case 1 To 21&#58; The_Day = The_Day + 10
    The_Month = 5
    The_Year = The_Year - 621
    Case 22 To 31&#58; The_Day = The_Day - 21
    The_Month = 6
    The_Year = The_Year - 621
    End Select
    Case 9&#58; Select Case The_Day
    Case 1 To 21&#58; The_Day = The_Day + 10
    The_Month = 6
    The_Year = The_Year - 621
    Case 22 To 30&#58; The_Day = The_Day - 21
    The_Month = 7
    The_Year = The_Year - 621
    End Select
    Case 10&#58; Select Case The_Day
    Case 1 To 21&#58; The_Day = The_Day + 9
    The_Month = 7
    The_Year = The_Year - 621
    Case 22 To 31&#58; The_Day = The_Day - 21
    The_Month = 8
    The_Year = The_Year - 621
    End Select
    Case 11&#58; Select Case The_Day
    Case 1 To 20&#58; The_Day = The_Day + 10
    The_Month = 8
    The_Year = The_Year - 621
    Case 21 To 30&#58; The_Day = The_Day - 20
    The_Month = 9
    The_Year = The_Year - 621
    End Select
    Case 12&#58; Select Case The_Day
    Case 1 To 20&#58; The_Day = The_Day + 10
    The_Month = 9
    The_Year = The_Year - 621
    Case 21 To 31&#58; The_Day = The_Day - 20
    The_Month = 10
    The_Year = The_Year - 621
    End Select
    End Select
    '------------------------------------------------------
    End If

    If The_Select = 2 Then
    '------------------------------------------------------
    Select Case The_Month
    Case 1&#58; Select Case The_Day
    Case 1 To 20&#58; The_Day = The_Day + 10
    The_Month = 10
    The_Year = The_Year - 622
    Case 21 To 31&#58; The_Day = The_Day - 20
    The_Month = 11
    The_Year = The_Year - 622
    End Select
    Case 2&#58; Select Case The_Day
    Case 1 To 19&#58; The_Day = The_Day + 11
    The_Month = 11
    The_Year = The_Year - 622
    Case 19 To 28&#58; The_Day = The_Day - 19
    The_Month = 12
    The_Year = The_Year - 622
    End Select
    Case 3&#58; Select Case The_Day
    Case 1 To 20&#58; The_Day = The_Day + 9
    The_Month = 12
    The_Year = The_Year - 622
    Case 21 To 31&#58; The_Day = The_Day - 20
    The_Month = 1
    The_Year = The_Year - 621
    End Select
    Case 4&#58; Select Case The_Day
    Case 1 To 20&#58; The_Day = The_Day + 11
    The_Month = 1
    The_Year = The_Year - 621
    Case 21 To 30&#58; The_Day = The_Day - 20
    The_Month = 2
    The_Year = The_Year - 621
    End Select
    Case 5&#58; Select Case The_Day
    Case 1 To 21&#58; The_Day = The_Day + 10
    The_Month = 2
    The_Year = The_Year - 621
    Case 22 To 31&#58; The_Day = The_Day - 21
    The_Month = 3
    The_Year = The_Year - 621
    End Select
    Case 6&#58; Select Case The_Day
    Case 1 To 21&#58; The_Day = The_Day + 10
    The_Month = 3
    The_Year = The_Year - 621
    Case 22 To 30&#58; The_Day = The_Day - 21
    The_Month = 4
    The_Year = The_Year - 621
    End Select
    Case 7&#58; Select Case The_Day
    Case 1 To 22&#58; The_Day = The_Day + 9
    The_Month = 4
    The_Year = The_Year - 621
    Case 23 To 31&#58; The_Day = The_Day - 22
    The_Month = 5
    The_Year = The_Year - 621
    End Select
    Case 8&#58; Select Case The_Day
    Case 1 To 22&#58; The_Day = The_Day + 9
    The_Month = 5
    The_Year = The_Year - 621
    Case 23 To 31&#58; The_Day = The_Day - 22
    The_Month = 6
    The_Year = The_Year - 621
    End Select
    Case 9&#58; Select Case The_Day
    Case 1 To 22&#58; The_Day = The_Day + 9
    The_Month = 6
    The_Year = The_Year - 621
    Case 23 To 30&#58; The_Day = The_Day - 22
    The_Month = 7
    The_Year = The_Year - 621
    End Select
    Case 10&#58; Select Case The_Day
    Case 1 To 22&#58; The_Day = The_Day + 8
    The_Month = 7
    The_Year = The_Year - 621
    Case 23 To 31&#58; The_Day = The_Day - 22
    The_Month = 8
    The_Year = The_Year - 621
    End Select
    Case 11&#58; Select Case The_Day
    Case 1 To 21&#58; The_Day = The_Day + 9
    The_Month = 8
    The_Year = The_Year - 621
    Case 22 To 30&#58; The_Day = The_Day - 21
    The_Month = 9
    The_Year = The_Year - 621
    End Select
    Case 12&#58; Select Case The_Day
    Case 1 To 21&#58; The_Day = The_Day + 9
    The_Month = 9
    The_Year = The_Year - 621
    Case 22 To 31&#58; The_Day = The_Day - 21
    The_Month = 10
    The_Year = The_Year - 621
    End Select
    End Select
    '------------------------------------------------------
    End If

    If The_Select = 3 Then
    '------------------------------------------------------
    Select Case The_Month
    Case 1&#58; Select Case The_Day
    Case 1 To 19&#58; The_Day = The_Day + 11
    The_Month = 10
    The_Year = The_Year - 622
    Case 20 To 31&#58; The_Day = The_Day - 19
    The_Month = 11
    The_Year = The_Year - 622
    End Select
    Case 2&#58; Select Case The_Day
    Case 1 To 18&#58; The_Day = The_Day + 12
    The_Month = 11
    The_Year = The_Year - 622
    Case 19 To 28&#58; The_Day = The_Day - 18
    The_Month = 12
    The_Year = The_Year - 622
    End Select
    Case 3&#58; Select Case The_Day
    Case 1 To 20&#58; The_Day = The_Day + 10
    The_Month = 12
    The_Year = The_Year - 622
    Case 21 To 31&#58; The_Day = The_Day - 20
    The_Month = 1
    The_Year = The_Year - 621
    End Select
    Case 4&#58; Select Case The_Day
    Case 1 To 20&#58; The_Day = The_Day + 11
    The_Month = 1
    The_Year = The_Year - 621
    Case 21 To 30&#58; The_Day = The_Day - 20
    The_Month = 2
    The_Year = The_Year - 621
    End Select
    Case 5&#58; Select Case The_Day
    Case 1 To 21&#58; The_Day = The_Day + 10
    The_Month = 2
    The_Year = The_Year - 621
    Case 22 To 31&#58; The_Day = The_Day - 21
    The_Month = 3
    The_Year = The_Year - 621
    End Select
    Case 6&#58; Select Case The_Day
    Case 1 To 21&#58; The_Day = The_Day + 10
    The_Month = 3
    The_Year = The_Year - 621
    Case 22 To 30&#58; The_Day = The_Day - 21
    The_Month = 4
    The_Year = The_Year - 621
    End Select
    Case 7&#58; Select Case The_Day
    Case 1 To 22&#58; The_Day = The_Day + 9
    The_Month = 4
    The_Year = The_Year - 621
    Case 23 To 31&#58; The_Day = The_Day - 22
    The_Month = 5
    The_Year = The_Year - 621
    End Select
    Case 8&#58; Select Case The_Day
    Case 1 To 22&#58; The_Day = The_Day + 9
    The_Month = 5
    The_Year = The_Year - 621
    Case 23 To 31&#58; The_Day = The_Day - 22
    The_Month = 6
    The_Year = The_Year - 621
    End Select
    Case 9&#58; Select Case The_Day
    Case 1 To 22&#58; The_Day = The_Day + 9
    The_Month = 6
    The_Year = The_Year - 621
    Case 23 To 30&#58; The_Day = The_Day - 22
    The_Month = 7
    The_Year = The_Year - 621
    End Select
    Case 10&#58; Select Case The_Day
    Case 1 To 22&#58; The_Day = The_Day + 8
    The_Month = 7
    The_Year = The_Year - 621
    Case 23 To 31&#58; The_Day = The_Day - 22
    The_Month = 8
    The_Year = The_Year - 621
    End Select
    Case 11&#58; Select Case The_Day
    Case 1 To 21&#58; The_Day = The_Day + 9
    The_Month = 8
    The_Year = The_Year - 621
    Case 22 To 30&#58; The_Day = The_Day - 21
    The_Month = 9
    The_Year = The_Year - 621
    End Select
    Case 12&#58; Select Case The_Day
    Case 1 To 21&#58; The_Day = The_Day + 9
    The_Month = 9
    The_Year = The_Year - 621
    Case 22 To 31&#58; The_Day = The_Day - 21
    The_Month = 10
    The_Year = The_Year - 621
    End Select
    End Select
    '------------------------------------------------------
    End If

    Fa_Date = Format&#40;CStr&#40;The_Year&#41;, "0000"&#41; & "/" & _
    Format&#40;CStr&#40;The_Month&#41;, "00"&#41; & "/" & _
    Format&#40;CStr&#40;The_Day&#41;, "00"&#41;
    End Function


    Public Function En_Date&#40;Fa_Date As String&#41; As String
    Dim The_Year As Integer
    Dim The_Month As Integer
    Dim The_Day As Integer
    The_Year = CInt&#40;Mid&#40;Fa_Date, 1, 4&#41;&#41;
    The_Month = CInt&#40;Mid&#40;Fa_Date, 6, 2&#41;&#41;
    The_Day = CInt&#40;Mid&#40;Fa_Date, 9, 2&#41;&#41;

    Dim The_Select As Integer
    The_Select = The_Year Mod 4

    '------------------------------------------------------------------------------------------------------------------------
    If The_Select = 0 Then 'Like &#58; 1360, 1364, 1368, 1372, 1376, 1380, 1384, ...
    Select Case The_Month
    Case 1&#58; Select Case The_Day
    Case 1 To 11&#58; The_Day = The_Day + 20
    The_Month = 3
    The_Year = The_Year + 621
    Case 12 To 31&#58; The_Day = The_Day - 11
    The_Month = 4
    The_Year = The_Year + 621
    End Select
    Case 2&#58; Select Case The_Day
    Case 1 To 10&#58; The_Day = The_Day + 20
    The_Month = 4
    The_Year = The_Year + 621
    Case 11 To 31&#58; The_Day = The_Day - 10
    The_Month = 5
    The_Year = The_Year + 621
    End Select
    Case 3&#58; Select Case The_Day
    Case 1 To 10&#58; The_Day = The_Day + 21
    The_Month = 5
    The_Year = The_Year + 621
    Case 11 To 31&#58; The_Day = The_Day - 10
    The_Month = 6
    The_Year = The_Year + 621
    End Select
    Case 4&#58; Select Case The_Day
    Case 1 To 9&#58; The_Day = The_Day + 21
    The_Month = 6
    The_Year = The_Year + 621
    Case 10 To 31&#58; The_Day = The_Day - 9
    The_Month = 7
    The_Year = The_Year + 621
    End Select
    Case 5&#58; Select Case The_Day
    Case 1 To 9&#58; The_Day = The_Day + 22
    The_Month = 7
    The_Year = The_Year + 621
    Case 10 To 31&#58; The_Day = The_Day - 9
    The_Month = 8
    The_Year = The_Year + 621
    End Select
    Case 6&#58; Select Case The_Day
    Case 1 To 9&#58; The_Day = The_Day + 22
    The_Month = 8
    The_Year = The_Year + 621
    Case 10 To 31&#58; The_Day = The_Day - 9
    The_Month = 9
    The_Year = The_Year + 621
    End Select
    Case 7&#58; Select Case The_Day
    Case 1 To 8&#58; The_Day = The_Day + 22
    The_Month = 9
    The_Year = The_Year + 621
    Case 9 To 30&#58; The_Day = The_Day - 8
    The_Month = 10
    The_Year = The_Year + 621
    End Select
    Case 8&#58; Select Case The_Day
    Case 1 To 9&#58; The_Day = The_Day + 22
    The_Month = 10
    The_Year = The_Year + 621
    Case 10 To 30&#58; The_Day = The_Day - 9
    The_Month = 11
    The_Year = The_Year + 621
    End Select
    Case 9&#58; Select Case The_Day
    Case 1 To 9&#58; The_Day = The_Day + 21
    The_Month = 11
    The_Year = The_Year + 621
    Case 10 To 30&#58; The_Day = The_Day - 9
    The_Month = 12
    The_Year = The_Year + 621
    End Select
    Case 10&#58; Select Case The_Day
    Case 1 To 10&#58; The_Day = The_Day + 21
    The_Month = 12
    The_Year = The_Year + 621
    Case 11 To 30&#58; The_Day = The_Day - 10
    The_Month = 1
    The_Year = The_Year + 622
    End Select
    Case 11&#58; Select Case The_Day
    Case 1 To 11&#58; The_Day = The_Day + 20
    The_Month = 1
    The_Year = The_Year + 622
    Case 12 To 30&#58; The_Day = The_Day - 11
    The_Month = 2
    The_Year = The_Year + 622
    End Select
    Case 12&#58; Select Case The_Day
    Case 1 To 9&#58; The_Day = The_Day + 19
    The_Month = 2
    The_Year = The_Year + 622
    Case 10 To 30&#58; The_Day = The_Day - 9
    The_Month = 3
    The_Year = The_Year + 622
    End Select
    End Select
    End If
    '------------------------------------------------------------------------------------------------------------------------
    If The_Select = 1 Then 'Like &#58; 1361, 1365, 1369, 1373, 1377, 1381, 1385, ...
    Select Case The_Month
    Case 1&#58; Select Case The_Day
    Case 1 To 11&#58; The_Day = The_Day + 20
    The_Month = 3
    The_Year = The_Year + 621
    Case 12 To 31&#58; The_Day = The_Day - 11
    The_Month = 4
    The_Year = The_Year + 621
    End Select
    Case 2&#58; Select Case The_Day
    Case 1 To 10&#58; The_Day = The_Day + 20
    The_Month = 4
    The_Year = The_Year + 621
    Case 11 To 31&#58; The_Day = The_Day - 10
    The_Month = 5
    The_Year = The_Year + 621
    End Select
    Case 3&#58; Select Case The_Day
    Case 1 To 10&#58; The_Day = The_Day + 22
    The_Month = 5
    The_Year = The_Year + 621
    Case 11 To 31&#58; The_Day = The_Day - 10
    The_Month = 6
    The_Year = The_Year + 621
    End Select
    Case 4&#58; Select Case The_Day
    Case 1 To 9&#58; The_Day = The_Day + 21
    The_Month = 6
    The_Year = The_Year + 621
    Case 10 To 31&#58; The_Day = The_Day - 9
    The_Month = 7
    The_Year = The_Year + 621
    End Select
    Case 5&#58; Select Case The_Day
    Case 1 To 9&#58; The_Day = The_Day + 22
    The_Month = 7
    The_Year = The_Year + 621
    Case 10 To 31&#58; The_Day = The_Day - 9
    The_Month = 8
    The_Year = The_Year + 621
    End Select
    Case 6&#58; Select Case The_Day
    Case 1 To 9&#58; The_Day = The_Day + 22
    The_Month = 8
    The_Year = The_Year + 621
    Case 10 To 31&#58; The_Day = The_Day - 9
    The_Month = 9
    The_Year = The_Year + 621
    End Select
    Case 7&#58; Select Case The_Day
    Case 1 To 8&#58; The_Day = The_Day + 22
    The_Month = 9
    The_Year = The_Year + 621
    Case 9 To 30&#58; The_Day = The_Day - 8
    The_Month = 10
    The_Year = The_Year + 621
    End Select
    Case 8&#58; Select Case The_Day
    Case 1 To 9&#58; The_Day = The_Day + 22
    The_Month = 10
    The_Year = The_Year + 621
    Case 10 To 30&#58; The_Day = The_Day - 9
    The_Month = 11
    The_Year = The_Year + 621
    End Select
    Case 9&#58; Select Case The_Day
    Case 1 To 9&#58; The_Day = The_Day + 21
    The_Month = 11
    The_Year = The_Year + 621
    Case 10 To 30&#58; The_Day = The_Day - 9
    The_Month = 12
    The_Year = The_Year + 621
    End Select
    Case 10&#58; Select Case The_Day
    Case 1 To 10&#58; The_Day = The_Day + 21
    The_Month = 12
    The_Year = The_Year + 621
    Case 11 To 30&#58; The_Day = The_Day - 10
    The_Month = 1
    The_Year = The_Year + 622
    End Select
    Case 11&#58; Select Case The_Day
    Case 1 To 11&#58; The_Day = The_Day + 20
    The_Month = 1
    The_Year = The_Year + 622
    Case 12 To 30&#58; The_Day = The_Day - 11
    The_Month = 2
    The_Year = The_Year + 622
    End Select
    Case 12&#58; Select Case The_Day
    Case 1 To 9&#58; The_Day = The_Day + 19
    The_Month = 2
    The_Year = The_Year + 622
    Case 10 To 30&#58; The_Day = The_Day - 9
    The_Month = 3
    The_Year = The_Year + 622
    End Select
    End Select
    End If
    '------------------------------------------------------------------------------------------------------------------------
    If The_Select = 2 Then 'Like &#58; 1362, 1366, 1370, 1374, 1378, 1382, 1386, ...
    Select Case The_Month
    Case 1&#58; Select Case The_Day
    Case 1 To 11&#58; The_Day = The_Day + 20
    The_Month = 3
    The_Year = The_Year + 621
    Case 12 To 31&#58; The_Day = The_Day - 11
    The_Month = 4
    The_Year = The_Year + 621
    End Select
    Case 2&#58; Select Case The_Day
    Case 1 To 10&#58; The_Day = The_Day + 20
    The_Month = 4
    The_Year = The_Year + 621
    Case 11 To 31&#58; The_Day = The_Day - 10
    The_Month = 5
    The_Year = The_Year + 621
    End Select
    Case 3&#58; Select Case The_Day
    Case 1 To 10&#58; The_Day = The_Day + 21
    The_Month = 5
    The_Year = The_Year + 621
    Case 11 To 31&#58; The_Day = The_Day - 10
    The_Month = 6
    The_Year = The_Year + 621
    End Select
    Case 4&#58; Select Case The_Day
    Case 1 To 9&#58; The_Day = The_Day + 21
    The_Month = 6
    The_Year = The_Year + 621
    Case 10 To 31&#58; The_Day = The_Day - 9
    The_Month = 7
    The_Year = The_Year + 621
    End Select
    Case 5&#58; Select Case The_Day
    Case 1 To 9&#58; The_Day = The_Day + 22
    The_Month = 7
    The_Year = The_Year + 621
    Case 10 To 31&#58; The_Day = The_Day - 9
    The_Month = 8
    The_Year = The_Year + 621
    End Select
    Case 6&#58; Select Case The_Day
    Case 1 To 9&#58; The_Day = The_Day + 22
    The_Month = 8
    The_Year = The_Year + 621
    Case 10 To 31&#58; The_Day = The_Day - 9
    The_Month = 9
    The_Year = The_Year + 621
    End Select
    Case 7&#58; Select Case The_Day
    Case 1 To 8&#58; The_Day = The_Day + 22
    The_Month = 9
    The_Year = The_Year + 621
    Case 9 To 30&#58; The_Day = The_Day - 8
    The_Month = 10
    The_Year = The_Year + 621
    End Select
    Case 8&#58; Select Case The_Day
    Case 1 To 9&#58; The_Day = The_Day + 22
    The_Month = 10
    The_Year = The_Year + 621
    Case 10 To 30&#58; The_Day = The_Day - 9
    The_Month = 11
    The_Year = The_Year + 621
    End Select
    Case 9&#58; Select Case The_Day
    Case 1 To 9&#58; The_Day = The_Day + 21
    The_Month = 11
    The_Year = The_Year + 621
    Case 10 To 30&#58; The_Day = The_Day - 9
    The_Month = 12
    The_Year = The_Year + 621
    End Select
    Case 10&#58; Select Case The_Day
    Case 1 To 10&#58; The_Day = The_Day + 21
    The_Month = 12
    The_Year = The_Year + 621
    Case 11 To 30&#58; The_Day = The_Day - 10
    The_Month = 1
    The_Year = The_Year + 622
    End Select
    Case 11&#58; Select Case The_Day
    Case 1 To 11&#58; The_Day = The_Day + 20
    The_Month = 1
    The_Year = The_Year + 622
    Case 12 To 30&#58; The_Day = The_Day - 11
    The_Month = 2
    The_Year = The_Year + 622
    End Select
    Case 12&#58; Select Case The_Day
    Case 1 To 10&#58; The_Day = The_Day + 19
    The_Month = 2
    The_Year = The_Year + 622
    Case 11 To 30&#58; The_Day = The_Day - 10
    The_Month = 3
    The_Year = The_Year + 622
    End Select
    End Select
    End If
    '------------------------------------------------------------------------------------------------------------------------
    If The_Select = 3 Then 'Like &#58; 1363, 1367, 1371, 1375, 1379, 1383, 1387, ...
    Select Case The_Month
    Case 1&#58; Select Case The_Day
    Case 1 To 12&#58; The_Day = The_Day + 19
    The_Month = 3
    The_Year = The_Year + 621
    Case 13 To 31&#58; The_Day = The_Day - 12
    The_Month = 4
    The_Year = The_Year + 621
    End Select
    Case 2&#58; Select Case The_Day
    Case 1 To 11&#58; The_Day = The_Day + 19
    The_Month = 4
    The_Year = The_Year + 621
    Case 12 To 31&#58; The_Day = The_Day - 11
    The_Month = 5
    The_Year = The_Year + 621
    End Select
    Case 3&#58; Select Case The_Day
    Case 1 To 11&#58; The_Day = The_Day + 20
    The_Month = 5
    The_Year = The_Year + 621
    Case 12 To 31&#58; The_Day = The_Day - 11
    The_Month = 6
    The_Year = The_Year + 621
    End Select
    Case 4&#58; Select Case The_Day
    Case 1 To 10&#58; The_Day = The_Day + 20
    The_Month = 6
    The_Year = The_Year + 621
    Case 11 To 31&#58; The_Day = The_Day - 10
    The_Month = 7
    The_Year = The_Year + 621
    End Select
    Case 5&#58; Select Case The_Day
    Case 1 To 10&#58; The_Day = The_Day + 21
    The_Month = 7
    The_Year = The_Year + 621
    Case 11 To 31&#58; The_Day = The_Day - 10
    The_Month = 8
    The_Year = The_Year + 621
    End Select
    Case 6&#58; Select Case The_Day
    Case 1 To 10&#58; The_Day = The_Day + 21
    The_Month = 8
    The_Year = The_Year + 621
    Case 11 To 31&#58; The_Day = The_Day - 10
    The_Month = 9
    The_Year = The_Year + 621
    End Select
    Case 7&#58; Select Case The_Day
    Case 1 To 9&#58; The_Day = The_Day + 21
    The_Month = 9
    The_Year = The_Year + 621
    Case 10 To 30&#58; The_Day = The_Day - 9
    The_Month = 10
    The_Year = The_Year + 621
    End Select
    Case 8&#58; Select Case The_Day
    Case 1 To 10&#58; The_Day = The_Day + 21
    The_Month = 10
    The_Year = The_Year + 621
    Case 11 To 30&#58; The_Day = The_Day - 10
    The_Month = 11
    The_Year = The_Year + 621
    End Select
    Case 9&#58; Select Case The_Day
    Case 1 To 10&#58; The_Day = The_Day + 20
    The_Month = 11
    The_Year = The_Year + 621
    Case 11 To 30&#58; The_Day = The_Day - 10
    The_Month = 12
    The_Year = The_Year + 621
    End Select
    Case 10&#58; Select Case The_Day
    Case 1 To 11&#58; The_Day = The_Day + 20
    The_Month = 12
    The_Year = The_Year + 621
    Case 12 To 30&#58; The_Day = The_Day - 11
    The_Month = 1
    The_Year = The_Year + 622
    End Select
    Case 11&#58; Select Case The_Day
    Case 1 To 12&#58; The_Day = The_Day + 19
    The_Month = 1
    The_Year = The_Year + 622
    Case 13 To 30&#58; The_Day = The_Day - 12
    The_Month = 2
    The_Year = The_Year + 622
    End Select
    Case 12&#58; Select Case The_Day
    Case 1 To 10&#58; The_Day = The_Day + 18
    The_Month = 2
    The_Year = The_Year + 622
    Case 11 To 30&#58; The_Day = The_Day - 10
    The_Month = 3
    The_Year = The_Year + 622
    End Select
    End Select
    End If
    '------------------------------------------------------------------------------------------------------------------------
    En_Date = Format&#40;CStr&#40;The_Month&#41;, "00"&#41; & "/" & _
    Format&#40;CStr&#40;The_Day&#41;, "00"&#41; & "/" & _
    Format&#40;CStr&#40;The_Year&#41;, "0000"&#41;
    End Function

  12. #12
    کاربر دائمی
    تاریخ عضویت
    بهمن 1382
    محل زندگی
    فعلا ایران - فعلا تهران
    پست
    2,628
    فونت فارسی tahoma با این تفاوت که نمایش اعداد هم به شکل فارسی است

  13. #13
    ممنون بابک جان :flower:
    عالی بود :thnx:
    مخصوصاْ فونت

  14. #14
    با سلام خدمت همه دوستان مخصوصا جناب کد نویس که به من در این تاپیک کمک می کنند. بقیه که ...
    خب بگذریم
    آقای VBProgrammer من دفعه پیش که پست شما رو دیدم (اعشاری) فکر کردم تنها کد تبدیل اعشاری رو می خواید واسه همین فقط همون رو نوشتم. البته خودتون می تونید این کد را با کد قبلی با هم استفاده کنید و به نتیجه ای که می خواید برسید. اگه نتونستید همینجا بگید. :) :wink:

    Option Explicit
    Private Const dahom = "دهم"
    Private Const sadom = "صدم"

    Private Function Meghdar&#40;Addad&#41;
    Dim ziredah&#40;9&#41; As String
    Dim dahtabist&#40;19&#41; As String
    Dim dahi&#40;9&#41; As String

    Dim Dot, Ashar, Yekan, Dahgan

    ziredah&#40;1&#41; = "یک"&#58; ziredah&#40;2&#41; = "دو"&#58; ziredah&#40;3&#41; = "سه"&#58; ziredah&#40;4&#41; = "چهار"&#58; ziredah&#40;5&#41; = "پنج"
    ziredah&#40;6&#41; = "شش"&#58; ziredah&#40;7&#41; = "هفت"&#58; ziredah&#40;8&#41; = "هشت"&#58; ziredah&#40;9&#41; = "نه"

    dahtabist&#40;11&#41; = "یازده"&#58; dahtabist&#40;12&#41; = "دوازده"&#58; dahtabist&#40;13&#41; = "سیزده"&#58; dahtabist&#40;14&#41; = "چهارده"&#58; dahtabist&#40;15&#41; = "پانزده"
    dahtabist&#40;16&#41; = "شانزده"&#58; dahtabist&#40;17&#41; = "هفده"&#58; dahtabist&#40;18&#41; = "هیجده"&#58; dahtabist&#40;19&#41; = "نوزده"

    dahi&#40;2&#41; = "بیست"&#58; dahi&#40;3&#41; = "سی"&#58; dahi&#40;4&#41; = "چهل"&#58; dahi&#40;5&#41; = "پنجاه"
    dahi&#40;6&#41; = "شصت"&#58; dahi&#40;7&#41; = "هفتاد"&#58; dahi&#40;8&#41; = "هشتاد"&#58; dahi&#40;9&#41; = "نود"

    Dot = InStr&#40;1, Addad, ".", vbTextCompare&#41;
    If Dot &lt;> 0 Then
    Ashar = Mid&#40;Addad, Dot + 1, 2&#41;
    Select Case Len&#40;Ashar&#41;
    Case Is = 2
    If Mid&#40;Ashar, 1, 1&#41; = 0 And Mid&#40;Ashar, 2, 2&#41; &lt;> 0 Then Meghdar = ziredah&#40;Mid&#40;Ashar, 2, 2&#41;&#41; &amp; " " &amp; sadom
    If Ashar Mod 10 = 0 And Mid&#40;Ashar, 2, 2&#41; = 0 Then Meghdar = ziredah&#40;Mid&#40;Ashar, 1, 1&#41;&#41; &amp; " " &amp; dahom
    If Ashar Mod 10 &lt;> 0 And Mid&#40;Ashar, 1, 1&#41; &lt;> 0 Then Meghdar = dahi&#40;Mid&#40;Ashar, 1, 1&#41;&#41; &amp; " &amp;aelig; " &amp; ziredah&#40;Mid&#40;Ashar, 2, 2&#41;&#41; &amp; " " &amp; sadom
    If Mid&#40;Ashar, 1, 1&#41; = 0 And Mid&#40;Ashar, 2, 2&#41; = 0 Then Meghdar = "بدون اعشار"
    If Ashar > 10 And Ashar &lt; 20 Then Meghdar = dahtabist&#40;Ashar&#41; &amp; " " &amp; sadom
    Case Is = 1
    If Mid&#40;Ashar, 1, 1&#41; = 0 Then Meghdar = "بدون اعشار"
    If Mid&#40;Ashar, 1, 1&#41; &lt;> 0 Then Meghdar = ziredah&#40;Mid&#40;Ashar, 1, 1&#41;&#41; &amp; " " &amp; dahom
    Case Is = 0
    Meghdar = "بدون اعشار"
    End Select
    Else
    Meghdar = "بدون اعشار"
    End If
    End Function

    برنامه نویس : مسعود غیبی

    دیگر دوستان هم اگه کمک کنند و این تاپیک رو پربار کنند ممنون میشم.

  15. #15
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    مشهد مقدس
    پست
    416
    با سلام :
    این کد را هم من داشتم جهت تبدیل عدد به حروف :wink: :oops:


    Function Cntc&#40;No As Currency&#41; As String
    If No &lt; 0 Then
    Exit Function
    End If

    Dim NN As Currency
    Dim N As Integer
    Dim S As String
    Dim SS As String
    Dim Ten As Integer
    Ten = 3
    NN = No
    Do While Ten >= 0
    N = Int&#40;NN / 10 ^ &#40;Ten * 3&#41;&#41;
    NN = NN - N * 10 ^ &#40;Ten * 3&#41;
    SS = Msntc&#40;N&#41;
    If SS &lt;> "" Then
    S = S + SS
    Select Case Ten
    Case 1
    S = S + "هزار "
    Case 2
    S = S + "میلیون "
    Case 3
    S = S + "میلیارد "
    End Select
    End If
    Ten = Ten - 1
    If NN > 0 Then
    If N > 0 Then
    S = S + " و "
    End If
    Else
    Exit Do
    End If
    Loop
    If Trim&#40;S&#41; = "" Then '0 rials
    S = " صفر "
    End If
    Cntc = S
    End Function

    Private Function Msntc&#40;N As Integer&#41; As String
    If N = 0 Then Exit Function
    If N &lt; 10 Then
    Msntc = Choose&#40;N, "یک", "دو", "سه", "چهار", "پنج", "شش", "هفت", "هشت", "نه"&#41;
    ElseIf N &lt; 20 Then
    Msntc = Choose&#40;N - 9, "ده", "یازده", "دوازده", "سیزده", "چهارده", "پانزده", "شانزده", "هفده", "هجده", "نوزده"&#41;
    ElseIf N &lt; 100 Then
    If &#40;N Mod 10&#41; > 0 Then
    Msntc = Msntc&#40;&#40;N \ 10&#41; * 10&#41; + " و " + Msntc&#40;N Mod 10&#41;
    End If
    If Int&#40;N / 10 - 1&#41; = &#40;N / 10 - 1&#41; Then Msntc = Choose&#40;N / 10 - 1, "بیست", "سی", "چهل", "پنجاه", "شصت", "هفتاد", "هشتاد", "نود"&#41;

    ElseIf N &lt; 1000 Then
    If &#40;N Mod 100&#41; > 0 Then
    Msntc = Msntc&#40;&#40;N \ 100&#41; * 100&#41; + " و " + Msntc&#40;N Mod 100&#41;
    End If
    If Int&#40;N / 100&#41; = &#40;N / 100&#41; Then Msntc = Choose&#40;N / 100, "یکصد", "دویست", "سیصد", "چهارصد", "پانصد", "ششصد", "هفتصد", "هشتصد", "نهصد"&#41;
    End If
    End Function

  16. #16
    دوست عزیز از کدی که ارسال کردید ممنون
    حسنی کد قبلی به این مد داره٬ قابلیت برگرداندن مقدار عددی ماکزیمم 999999999999 هست. در صورتی که این کد تا 999 بیشتر قابلیت نداره.
    :wink:

  17. #17
    کاربر دائمی
    تاریخ عضویت
    بهمن 1382
    محل زندگی
    فعلا ایران - فعلا تهران
    پست
    2,628
    امشب میخواستم یه برنامه بهتون هدیه بدم که بدون نیاز به محیط و ویندوز
    فارسی یا عربی میتونه فارسی تایپ کنه و اونو به پنج کدپیج مختلف هم
    تبدیل کنه اما دیدم اگر اونو به شکل setup و مرتب شده با چند فونت اصافه
    بدم بهتره .
    الان هم نشستم دارم setup میسازم تا فردا براتون بذارم همین جا .
    منتظر باشید

  18. #18
    کاربر دائمی
    تاریخ عضویت
    آذر 1383
    محل زندگی
    تهران
    پست
    1,021
    سلام

    کد زیر تبدیل تاریخ میلادی به شمسی است. البته این کد از کد آقای کدنویس کمتره اما مطمئن باشید که درست کار میکنه چون خودم توی تمام روزهای سال تستش کردم.
    Public Const Gregorian = ISO_8601
    Public Function FarsiDate&#40;intYear As Integer, intMonth As Integer, intDay As Integer, YMD&#41;
    Call jdn_persian&#40;civil_jdn&#40;intYear, intMonth, intDay&#41;, intYear, intMonth, intDay&#41;
    iShamsiYear = CStr&#40;intYear&#41;
    iShamsiMonth = CStr&#40;intMonth&#41;
    iShamsiDay = CStr&#40;intDay&#41;
    If Len&#40;iShamsiMonth&#41; = 1 Then iShamsiMonth = "0" &amp; iShamsiMonth
    If Len&#40;iShamsiDay&#41; = 1 Then iShamsiDay = "0" &amp; iShamsiDay
    Select Case UCase&#40;Trim&#40;YMD&#41;&#41;
    Case "Y"
    FarsiDate = iShamsiYear
    Case "M"
    FarsiDate = iShamsiMonth
    Case "D"
    FarsiDate = iShamsiDay
    End Select
    End Function
    Function julian_jdn&#40;iYear As Integer, _
    iMonth As Integer, _
    iDay As Integer&#41; As Long
    Dim lYear As Long
    Dim lMonth As Long
    Dim lDay As Long

    lYear = CLng&#40;iYear&#41;
    lMonth = CLng&#40;iMonth&#41;
    lDay = CLng&#40;iDay&#41;

    julian_jdn = 367 * lYear - _
    &#40;&#40;7 * &#40;lYear + 5001 + &#40;&#40;lMonth - 9&#41; \ 7&#41;&#41;&#41; \ 4&#41; _
    + &#40;&#40;275 * lMonth&#41; \ 9&#41; + lDay + 1729777

    End Function
    Function civil_jdn&#40;iYear As Integer, _
    iMonth As Integer, _
    iDay As Integer, _
    Optional CalendarType As Integer = Gregorian&#41; As Long
    Dim lYear As Long
    Dim lMonth As Long
    Dim lDay As Long

    If CalendarType = Gregorian And &#40;&#40;iYear > 1582&#41; Or _
    &#40;&#40;iYear = 1582&#41; And &#40;iMonth > 10&#41;&#41; Or _
    &#40;&#40;iYear = 1582&#41; And &#40;iMonth = 10&#41; And &#40;iDay > 14&#41;&#41;&#41; _
    Then
    lYear = CLng&#40;iYear&#41;
    lMonth = CLng&#40;iMonth&#41;
    lDay = CLng&#40;iDay&#41;
    civil_jdn = &#40;&#40;1461 * &#40;lYear + 4800 + &#40;&#40;lMonth - 14&#41; \ 12&#41;&#41;&#41; \ 4&#41; _
    + &#40;&#40;367 * &#40;lMonth - 2 - 12 * &#40;&#40;&#40;lMonth - 14&#41; \ 12&#41;&#41;&#41;&#41; \ 12&#41; _
    - &#40;&#40;3 * &#40;&#40;&#40;lYear + 4900 + &#40;&#40;lMonth - 14&#41; \ 12&#41;&#41; \ 100&#41;&#41;&#41; \ 4&#41; _
    + lDay - 32075
    Else
    civil_jdn = julian_jdn&#40;iYear, iMonth, iDay&#41;
    End If

    End Function
    Function persian_jdn&#40;iYear As Integer, _
    iMonth As Integer, _
    iDay As Integer&#41; As Long
    Const PERSIAN_EPOCH = 1948321 ' The JDN of 1 Farvardin 1
    Dim epbase As Long
    Dim epyear As Long
    Dim mdays As Long
    If iYear >= 0 Then
    epbase = iYear - 474
    Else
    epbase = iYear - 473
    End If
    epyear = 474 + &#40;epbase Mod 2820&#41;
    If iMonth &lt;= 7 Then
    mdays = &#40;CLng&#40;iMonth&#41; - 1&#41; * 31
    Else
    mdays = &#40;CLng&#40;iMonth&#41; - 1&#41; * 30 + 6
    End If
    persian_jdn = CLng&#40;iDay&#41; _
    + mdays _
    + Fix&#40;&#40;&#40;epyear * 682&#41; - 110&#41; / 2816&#41; _
    + &#40;epyear - 1&#41; * 365 _
    + Fix&#40;epbase / 2820&#41; * 1029983 _
    + &#40;PERSIAN_EPOCH - 1&#41;
    End Function
    Sub jdn_persian&#40;jdn As Long, _
    ByRef iYear As Integer, _
    ByRef iMonth As Integer, _
    ByRef iDay As Integer&#41;
    Dim depoch
    Dim cycle
    Dim cyear
    Dim ycycle
    Dim aux1, aux2
    Dim yday
    depoch = jdn - persian_jdn&#40;475, 1, 1&#41;
    cycle = Fix&#40;depoch / 1029983&#41;
    cyear = depoch Mod 1029983
    If cyear = 1029982 Then
    ycycle = 2820
    Else
    aux1 = Fix&#40;cyear / 366&#41;
    aux2 = cyear Mod 366
    ycycle = Int&#40;&#40;&#40;2134 * aux1&#41; + &#40;2816 * aux2&#41; + 2815&#41; / 1028522&#41; + aux1 + 1
    End If
    iYear = ycycle + &#40;2820 * cycle&#41; + 474
    If iYear &lt;= 0 Then
    iYear = iYear - 1
    End If
    yday = &#40;jdn - persian_jdn&#40;iYear, 1, 1&#41;&#41; + 1
    If yday &lt;= 186 Then
    iMonth = Ceil&#40;yday / 31&#41;
    Else
    iMonth = Ceil&#40;&#40;yday - 6&#41; / 30&#41;
    End If
    iDay = &#40;jdn - persian_jdn&#40;iYear, iMonth, 1&#41;&#41; + 1
    End Sub
    Private Function Ceil&#40;number As Single&#41; As Long
    Ceil = -Sgn&#40;number&#41; * Int&#40;-Abs&#40;number&#41;&#41;
    End Function

    در ورودی آخر اگر "y" را وارد کنید سال و یا اگر "m" را وارد نمایید ماه و اگر "d" را وارد نمایید روز میلادی را به عنوان خروجی میدهید.

  19. #19
    کد زیر تبدیل تاریخ میلادی به شمسی است. البته این کد از کد آقای کدنویس کمتره اما مطمئن باشید که درست کار میکنه چون خودم توی تمام روزهای سال تستش کردم.
    دوست عزیز من که نتونستم ازش استفاده کنم. ارور زیر را می دهد (ایراد از خط اول):

  20. #20
    کاربر دائمی
    تاریخ عضویت
    بهمن 1382
    محل زندگی
    فعلا ایران - فعلا تهران
    پست
    2,628
    حال برنامه ایی دارید که در هر ویندوز راست به چپ رو داره . فارسی هم مینویسه و
    ار طریق منوی اون میتونید نوشته خودتون رو به چند کد پیج تبدیل کنید.
    تو نسخه بعدی امکانات پیشرفته تری مثل تبدیل از داس و .... خواهیم داشت
    فعلا نسخه محدود تک خطی رو داشته باشید تا بعد.
    setup اضافه شد

  21. #21
    کاربر دائمی
    تاریخ عضویت
    بهمن 1382
    محل زندگی
    فعلا ایران - فعلا تهران
    پست
    2,628
    ستاپ اضافه شد دریافت کنید

  22. #22
    برناش که عالی بود ولی:
    اگر نتونستید استفاده کنید چاره ایی نداریم جز آپلود ستاپ برنامه
    فکر کنم باید همین کار را کرد چون --->

  23. #23
    کاربر دائمی
    تاریخ عضویت
    بهمن 1382
    محل زندگی
    فعلا ایران - فعلا تهران
    پست
    2,628
    بله activex قفل داره و من منظورم استفاده از خود برنامه بوده

  24. #24
    آقا مسعود خیلی ممنون از برنامه تبدیل اعداد اعشار به حروف

    با هم ترکیبشون کردم درست شد


    مرسی :wise1:

    جناب کد نویس از شما هم متشکر ( راستی می تونم بپرسم ستاپش رو با چه نرم افزاری درست کردین ؟ ):wink:

    عجب تاپیک پر محتوایی شده دست همه درد نکنه

  25. #25
    کاربر دائمی
    تاریخ عضویت
    خرداد 1382
    محل زندگی
    Iran
    پست
    417
    :thnx:

  26. #26
    کاربر دائمی آواتار (سیدشریفی)
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    ایران - تبریز
    پست
    468
    آقای کد نویس امر شما اطاعت میشود .

    :flower:
    :sorry:

  27. #27
    سلام
    البته منو بخشید که پا برهنه پریدم وسط !
    در صورتی که قبلا در تاپیکی در یکی از زمینه های فوق به نتیجه رسیده اید و یا مطلبی هرچند ساده و مشخص در این مورد مشاهده کرده اید٬ مطالب صحیح و بکار رفته در آن تاپیک را با ذکر نام شخص راهنمایی کننده در اینجا بنویسید.
    شما که خودتون اینو گفیتن چرا؟
    البته جسارته منو ببخشید.

  28. #28
    کاربر تازه وارد آواتار Spate
    تاریخ عضویت
    آذر 1383
    محل زندگی
    Shiraz
    پست
    87
    سلام
    بازم طبق معمول همیشه من کمک می خوام
    در مورد سرچ کردن فارسی تو دیتابیس اکسس
    وقتی سرچ می کنم قاتی پاتی میشه و خلاصه فارسی نمی ساپورته

  29. #29
    شما که خودتون اینو گفیتن چرا؟
    البته جسارته منو ببخشید.
    خواهش می کنم ولی متاسفانه منظورتون رو متوجه نمیشم.
    به نظرم اومد که شاید منظورتون نام نویسنده باشه که خب من هر کردوم رو می دونستم نوشتم. ولی با این اگه کسی به نظرش اومد اسم کسی رو نبردم بگه. من قصدی ندارم.

    وقتی سرچ می کنم قاتی پاتی میشه و خلاصه فارسی نمی ساپورته
    دلایل معمول:
    1. تنظیمات زبان فارسی را مطابق پست دوم همین تاپیک انتخاب نکرده اید (که برای حل مشکل این کار را بکنید)
    2. فونت نمایش اطلاعات در برنامتون زبان فارسی رو پشتیبانی نمیکنه.
    3. کدپیج مورد استفاده در زمان ثبت اطلاعات با کدپیج فعلی متفاوت است.

    اگه این موارد نبود٬ تصویری از برنامتون (قسمت نمایش اطلاعات) رو اینجا بذارید تا ببینیم.

    ممنون

  30. #30
    سلام
    وقتی کد چند صفه پیش آقای غیبی در مورد تبدیل مقدار عددی به حروف رو داخل یه ماژول کپی می کنم بصورت زیر میشه.
    چرا؟

  31. #31
    کاربر دائمی
    تاریخ عضویت
    بهمن 1382
    محل زندگی
    فعلا ایران - فعلا تهران
    پست
    2,628
    ممنون آقای سیدشریفی از لطف شما
    اینم به افتخار آقای سیدشریفی بااین کدمیتونیدیک منوی قابل قبول باتصویر
    و رنگ دلخواه و چند تا خرت پرت دیگه بسازید.
    سورس ساختن منوهم اینجاست البته اینم بگم که کد برنامه
    زیاد بهینه نیست و ممکنه اشکالاتی ریزی هم داشته باشه.
    اینم اوپن سورس ما هرکس امکانی اضافه کرد یا باگی گرفت
    با ذکر دقیق کار انجام شده و تغییرات صورت گرفته بذاره
    همین جا بقیه بردارن.
    فقط مشکلات رو برای من PM نزنید چون من تا اینجا آوردم
    بقیه رو دوستان زحمتش رو بکشن.

  32. #32
    آقای اسماعیلی آیا شما تنظیمات farsi ویندوز ایکس پی خود را ست کرده اید؟چون معمولا علامت سوال را وقتی می دهد که آن ها تنظیم نشده باشند.

  33. #33
    سلام
    آره ست شدن.
    البته مشکله بالا درصورتیکه که کپی پِیست کنم اگه خودم دستی فارسی تایپ کنم مشکلی ندار.

  34. #34
    دوستان برای من یک اشکال در رابطه باright to left در وی بی پیش اومده یعنی وقتی من برنامه وی بی را به یک ویندوز ایکس پی خام می برم که نه office دارد و نه وی بی ، تمام right to left هایم به هم می خورد.یعنی منوهایم از چپ به راست چیده می شوندو تمام text box هایم هم دچار مشکل شده اند و مثلا اگر من نوشته باشم
    1- روش کنترل
    شده:
    روش کنترل 1-

    که البته اعداد هم انگلیسی می زند و : را می برد سرخط....
    این مشکل را چگونه باید حل نمود؟

  35. #35
    فکر می کنم مشکل شما فایل vbame.dll باشه که جناب غیبی در چند پست قبل در همین تاپیک ذکر کردند :wink:

  36. #36
    اتفاقا من هم اون پست را دیدم اما نمی دانم چطور باید از اون dll استفاده کرد وچگونه باید اونو به ستاپ برنامه اضافه کرد.

  37. #37
    اتفاقا من هم اون پست را دیدم اما نمی دانم چطور باید از اون dll استفاده کرد وچگونه باید اونو به ستاپ برنامه اضافه کرد.
    نحوه استفادش که راحته. باید اون رو به همراه ستاپ برنامه داشته باشید. در همه برنامه های ستاپ ساز قسمتی برای تعریف فایلهای اضافی مورد نیاز برنامه هست (حتی برنامه Package & Deployment Wizard موجود در سی دی نصب ویژوال بیسیک). این فایل رو باید به پوشه سیستم دستگاه کپی کنید.

  38. #38
    برای اینکه آقای غیبی عصبانی نشن من تابع تبدیل تاریخ رو اینجا میذارم هم ساده هست و هم کوتاه

    Function Shamsi&#40;Optional date1 As String, Optional SmallDate1 As Boolean&#41; As String
    '================================================= ===
    Dim d, P, w, mon, mm, ym, u, v, rp, X, i, ys, ms, dm, p1, d1, ds, DateShamsi
    d = Array&#40;20, 19, 20, 20, 21, 21, 22, 22, 22, 22, 21, 21&#41;
    P = Array&#40;11, 12, 10, 12, 11, 11, 10, 10, 10, 9, 10, 10&#41;
    w = Array&#40;"یکشنبه","دوشنبه","سه شنبه","چهارشنبه","پنج شنبه","جمعه","شنبه"&#41;

    If SmallDate1 = True Then
    mon = Array&#40;"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"&#41;
    Else
    mon = Array&#40;"اسفند", "بهمن", "دی", "آذر", "آبان", "مهر", "شهریور", "مرداد", "تیر", "خرداد", "اردیبهشت", "فروردین"&#41;
    End If

    If date1 = "" Then date1 = DateAdd&#40;"d", 1, Date&#41;

    dm = Day&#40;date1&#41;
    mm = Month&#40;date1&#41;
    ym = Year&#40;date1&#41;
    u = 0
    rp = 0
    If &#40;ym Mod 4&#41; = 0 Then u = 1
    If &#40;&#40;ym Mod 100&#41; = 0 And &#40;ym Mod 400&#41; &lt;> 0&#41; Then u = 0
    ys = ym - 622
    X = ys - 22
    X = X Mod 33
    If &#40;&#40;X Mod 4&#41; = 0 And X &lt;> 32&#41; Then rp = 1
    i = Not &#40;rp - 2&#41; + Not &#40;u - 2&#41; * 2
    X = 0
    If &#40;i = 0 And mm = 3&#41; Then X = 1
    If i = 0 Then i = 3
    ms = &#40;9 + mm&#41; Mod 13
    If ms &lt; 10 Then ms = ms + 1
    d1 = d&#40;mm - 1&#41;
    If &#40;i = 1 And mm > 2&#41; Then d1 = d1 - 1
    If &#40;i = 2 And mm &lt; 3&#41; Then d1 = d1 - 1
    p1 = P&#40;mm - 1&#41;
    If &#40;i = 1 And mm > 2&#41; Then p1 = p1 + 1
    If &#40;i = 2 And mm &lt; 4&#41; Then p1 = p1 + 1
    If &#40;dm > 0 And dm &lt;= d1&#41; Then
    ds = p1 + dm + X - 1
    X = 1
    Else
    ds = dm - d1
    ms = ms + 1
    If ms = 13 Then ms = 1
    X = 2
    End If
    If &#40;&#40;mm = 3 And X = 2&#41; Or mm > 3&#41; Then ys = ys + 1
    ds = Str&#40;ds&#41;
    If Len&#40;Trim&#40;ds&#41;&#41; = 1 Then ds = "0" + Trim&#40;ds&#41;
    If SmallDate1 = True Then
    ' اگر سال به صورت دو کارکتری میخواهید خط زیر را از حالت کامنت در آورید
    ' Shamsi = Mid&#40;Trim&#40;Str&#40;Ys&#41;&#41;, 3, 2&#41; + "/" + Trim&#40;mon&#40;Ms - 1&#41;&#41; + "/" + Trim&#40;Ds&#41;
    ' اگر سال به صورت چهار کارکتری میخواهید خط زیر را از حالت کامنت در آورید
    Shamsi = Trim&#40;Str&#40;ys&#41;&#41; + "/" + Trim&#40;mon&#40;ms - 1&#41;&#41; + "/" + Trim&#40;ds&#41;
    Else
    Shamsi = w&#40;Weekday&#40;Date&#41; - 1&#41; + " " + Str&#40;ds&#41; + " " + mon&#40;ms - 1&#41; + " " + Str&#40;ys&#41;
    End If
    End Function

  39. #39
    من اون vbame.dll را در قسمت سیستم کپ کردم ومشکلم حل شد.باتشکر از آقای غیبی و وی بی پروگرمر عزیز.

  40. #40
    برای اینکه آقای غیبی عصبانی نشن من تابع تبدیل تاریخ رو اینجا میذارم هم ساده هست و هم کوتاه
    ممنون از کمکتون
    فقط به نطر این تابع مشکل داره. خروجی که امروز به من داد اینه : سه شنبه 15 خرداد 1383 البته این در صورتیه که از تابع به این شکل استفاده بشه :
    Shamsi&#40;&#41;

    اگه کد زیر باشه خروجی اینه : سه شنبه 14 خرداد 1383
    Shamsi&#40;Date&#41;

    اگه میتونید تصحیحش کنید.
    من اون vbame.dll را در قسمت سیستم کپ کردم ومشکلم حل شد.باتشکر از آقای غیبی و وی بی پروگرمر عزیز.
    :موفق:

صفحه 1 از 9 123 ... آخرآخر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •