اضافه کردن ماه به تاریخ فارسی

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • daghyad

    • 2012/03/30
    • 117

    اضافه کردن ماه به تاریخ فارسی

    سلام من این فانکشن را درست کردم برای این که تعدادی ماه به تاریخ فارسی اضافه کنیم و تاریخ جدید فارسی را بگیریم جواب نمی ده
    کد PHP:
    Function J_addmonth(Jdate1 As Stringaddmonth As Integer)
    Dim mah As Integer
    Dim rooz 
    As Integer
    Dim sal 
    As Integer
     rooz 
    Right(Jdate12)
      
    mah = (Right(Left(Jdate17), 2) + addmonth)
     
    If 
    mah Mod 12 0 Then
    sal 
    Left(Jdate14) + (Int(mah 12)) - 1
    Else
    sal Left(Jdate14) + (Int(mah 12))
    'ÊÇ ÇíäÌÇ ÓÇá ÈÏÓÊ ãí ÇíÏ
    End If
     
    If mah Mod 12 = 0 Then
    mah = 12
    Else
    mah = mah Mod 12
    End If
    If rooz = 31 And (mah Mod 12 = 0) Then
        rooz = rooz - 1
      
    ElseIf rooz = 31 And (mah Mod 12 > 6) Then
        rooz = rooz
    End If
    If mah < 9 And rooz > 9 Then
    J_addmonth = (sal) & "/0" & (mah) & "/" & (rooz)
    ElseIf mah < 9 And rooz < 9 Then
    J_addmonth = (sal) & "/0" & (mah) & "/0" & (rooz)
    ElseIf mah > 9 And rooz < 9 Then
    J_addmonth = (sal) & "/" & (mah) & "/0" & (rooz)
    Else
    J_addmonth = (sal) & "/" & (mah) & "/" & (rooz)
    End If
        
    End Function 
    ولی این ساب جواب میده همون کد هستش:
    کد PHP:
    Sub fff()
      
     
    Dim Jdate1 As Stringmah1 As Integer
     Jdate1 
    "1392/05/31"
     
    addmonth 8
     mah 
    = (Right(Left(Jdate17), 2) + addmonth)
     
    rooz Right(Jdate12)
     
    sal1 Left(Jdate14)
     
    MsgBox sal1
    If mah Mod 12 0 Then
    sal 
    Left(Jdate14) + (Int(mah 12)) - 1
    Else
    sal Left(Jdate14) + (Int(mah 12))
    'ÊÇ ÇíäÌÇ ÓÇá ÈÏÓÊ ãí ÇíÏ
    End If
     
    If mah Mod 12 = 0 Then
    mah = 12
    Else
    mah = mah Mod 12
    End If
    If rooz = 31 And (mah Mod 12 = 0) Then
        rooz = rooz - 1
      
    ElseIf rooz = 31 And (mah Mod 12 > 6) Then
        rooz = rooz
    End If
    If mah < 9 And rooz > 9 Then
    jaddmonth = (sal) & "/0" & (mah) & "/" & (rooz)
    ElseIf mah < 9 And rooz < 9 Then
    jaddmonth = (sal) & "/0" & (mah) & "/0" & (rooz)
    ElseIf mah > 9 And rooz < 9 Then
    jaddmonth = (sal) & "/" & (mah) & "/0" & (rooz)
    Else
    jaddmonth = (sal) & "/" & (mah) & "/" & (rooz)
    End If
    MsgBox jaddmonth
     End Sub 
  • ~M*E*H*D*I~
    • 2011/10/19
    • 4377
    • 70.00

    #2
    تابع رو چطوری فراخوانی می کنی؟

    sigpic

    کامنت

    • daghyad

      • 2012/03/30
      • 117

      #3
      در وی بی
      کد PHP:
      Sub GF()
      Dim Date1 As String
      Dim addmonth 
      As Integer
       Date1 
      Application.InputBox(Prompt:= _
              
      "Please enter DATE"Type:=1)
         
      addmonth Application.InputBox(Prompt:= _
              
      "Please enter MONTH"Type:=1)
          
      MsgBox "The NEW DATE is " J_addmonth(Date1addmonth)
      End Sub 
      در شیت هم مثل سایر توابع

      کامنت

      • ~M*E*H*D*I~
        • 2011/10/19
        • 4377
        • 70.00

        #4
        نوشته اصلی توسط daghyad
        در وی بی
        کد PHP:
        Sub GF()
        Dim Date1 As String
        Dim addmonth 
        As Integer
         Date1 
        Application.InputBox(Prompt:= _
                
        "Please enter DATE"Type:=1)
           
        addmonth Application.InputBox(Prompt:= _
                
        "Please enter MONTH"Type:=1)
            
        MsgBox "The NEW DATE is " J_addmonth(Date1addmonth)
        End Sub 
        در شیت هم مثل سایر توابع
        اگر میخوای تو شیت استفاده کنی که باید public باشه و آرگومان هایی که تعریف کردی از نظر نوع متغیر همخوانی داشته باشند بعد میرسه به جزئیات دقیقا میخوای چه کاری با این تابع انجام بدی

        sigpic

        کامنت

        • daghyad

          • 2012/03/30
          • 117

          #5
          سلام امتحان کردم با public هم جواب نداد از تابع val هم استفاده کردم گفتم شاید استرینگ ها را نمی تونه با int جمع کنه
          دوستان ببینند می تونند کاملش کنند البته یه شرط هم باید برای سال کبیسه استفاد] کنم تا هر جا 30 اسفند نداریم به جاش از 29 اسفند استفاده کنه

          کامنت

          • daghyad

            • 2012/03/30
            • 117

            #6
            اساتید ممنون کسی میتونه اصلاح کنه کد را این کد را من به صورت فرمولی و در ساب ساده به نتیجه رساندم اما در فانکشن نشده علت چیست؟

            کامنت

            • ~M*E*H*D*I~
              • 2011/10/19
              • 4377
              • 70.00

              #7
              اینو ببین
              فایل های پیوست شده

              sigpic

              کامنت

              • امين اسماعيلي
                مدير تالار ويژوال بيسيك

                • 2013/01/17
                • 1198
                • 84.00

                #8
                با درود
                فایلتون دوست عزیز از نظر تابع داخل خود شیت ها مشکلی نداره اما وقتی میخوای از اون تو فرم یا inputbox استفاده کنی باید به خروجی اونها دقت کنی. تو کد هات inputbox رو اگر جور دیگه ای استفاده کنی مثلا مثل زیر فکر کنم مشکلت حل میشه من تست کردم درست بود.
                کد:
                Sub GF()
                Dim Jdate1 As String
                Dim addmonth As Integer
                 Jdate1 = InputBox("please Enter your date", "month function")
                 addmonth = InputBox("please Enter your month", "month function")
                    MsgBox "The NEW DATE is " & J_addmonth(Jdate1, addmonth)
                    
                End Sub
                در پناه خداوندگار ایران زمین باشید و پیروز

                کامنت

                • امين اسماعيلي
                  مدير تالار ويژوال بيسيك

                  • 2013/01/17
                  • 1198
                  • 84.00

                  #9
                  با درود

                  یا از کد زیر

                  کد:
                  Sub GF1()
                  Dim Jdate1 As String
                  Dim addmonth As Integer
                   Jdate1 = Application.InputBox(Prompt:= _
                          "Please enter DATE", Type:=2)
                     addmonth = Application.InputBox(Prompt:= _
                          "Please enter MONTH", Type:=1)
                      MsgBox "The NEW DATE is " & J_addmonth(Jdate1, addmonth)
                  End Sub
                  type=1 رو برداشتم ;کردیمش type=2 چون string میخواستیم. تو اولی و اسم متغییر هاتو هم درست کردم چون همخونی نداشت . همونی که جناب وطن پرستم گفتن
                  در پناه خداوندگار ایران زمین باشید و پیروز

                  کامنت

                  • امين اسماعيلي
                    مدير تالار ويژوال بيسيك

                    • 2013/01/17
                    • 1198
                    • 84.00

                    #10
                    با درود مجدد

                    یه توضیح کوچلو در مورد type توی input box

                    کد:
                    [TABLE]
                    [TR]
                    [TH]Type[/TH]
                     		[TH]Meaning[/TH]
                     	[/TR]
                     	[TR]
                     		[TD]0[/TD]
                     		[TD]A formula[/TD]
                     	[/TR]
                     	[TR]
                     		[TD]1[/TD]
                     		[TD]A number[/TD]
                     	[/TR]
                     	[TR]
                     		[TD]2[/TD]
                     		[TD]Text (a string)[/TD]
                     	[/TR]
                     	[TR]
                     		[TD]4[/TD]
                     		[TD]A logical value ([B]True or [B]False)[/B][/B][/TD]
                     	[/TR]
                     	[TR]
                     		[TD]8[/TD]
                     		[TD]A cell reference, as a [B]Range object[/B][/TD]
                     	[/TR]
                     	[TR]
                     		[TD]16[/TD]
                     		[TD]An error value, such as #N/A[/TD]
                     	[/TR]
                     	[TR]
                     		[TD]64[/TD]
                     		[TD]An array of values
                    [/TD]
                    [/TR]
                    [/TABLE]
                    در پناه خداوندگار ایران زمین باشید و پیروز

                    کامنت

                    چند لحظه..