منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[مثال] طريقة تحويل تاريخ مدخل يدوياً كنص الى متغير من نوع تاريخ - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم امثلة ومشاريع VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=188)
+--- الموضوع : [مثال] طريقة تحويل تاريخ مدخل يدوياً كنص الى متغير من نوع تاريخ (/showthread.php?tid=14118)



طريقة تحويل تاريخ مدخل يدوياً كنص الى متغير من نوع تاريخ - myalsailamy - 14-12-15

السلام عليكم  و رحمة الله و بركاته  ،، 

كيف الحال اخواني و زملائي  // 

اليوم  سويت كود  و احببت ان اشارككم اياه  ،،  و لكن قبل ان تستخدموا الكود هناك قيود  و هي 
1/ ان يكون التاريخ النصي المدخل  يحوي السنة  و تكون رقم رباعي يعني بهذا الشكل 1437 أو 2015
2/ أن تحدد فورمات  (هيئة) التاريخ الذي سيدخل
3/ ان تحدد العلامة التي ستفصل بين ارقام التاريخ 


المميزات  في الـ Function  :
1/ تحويل  نص الى  Object   من  نوع  DateTime   أهم ميزه 
2/ يدعم الادخال  هجري او ميلادى  بمدى معين للتاريخ الهجري  بحيث يكون التاريخ اقل من  1450 سنة (تقويم ام القرى)
3/ يوجد مثال لطريقة الاستخدام للكود في وصف الكود
4/ يتعرف على التاريخ هل هو ميلادي ام هجري (باستخدام السنة)


و هذا هو الكود :


PHP كود :
    ''' <summary>
    ''' 
تحويل التاريخ من قيمة نصيه الى قيمة تاريخ
    
''' </summary>
    ''' 
<example>This is a code example:
    '''   <code>
    '''
       Dim myDate As DateTime ConvertFromStringToDate("1416/12/1")
    '''   </code>
    ''' 
</example>
    ''' <param name="DateAsString">التاريخ المدخل كنص</param>
    ''' 
<param name="DateFormat">هيئة التاريخ</param>
    ''' <param name="SpiltChar">الفاصله التي تفصل ارقام التواريخ</param>
    ''' 
<returns>DateTime</returns>
    ''' <remarks></remarks>
    Public Shared Function ConvertFromStringToDate(ByVal DateAsString As String, Optional ByVal DateFormat As String = "yyyy/MM/dd", Optional ByVal SpiltChar As Char = "/") As DateTime
        If DateAsString.Trim <> Nothing Then
            Dim theSpiltDate As String() = Split(DateAsString, SpiltChar)
            Dim culture As IFormatProvider
            Dim yearNo As String = ""
            For Each Number As String In theSpiltDate
                If Number.Length = 4 And Information.IsNumeric(Number) = True AndAlso (Val(Number) > 1300 Or Val(Number) < 2100) Then yearNo = Number
            Next
            If yearNo.Trim = Nothing Then Return Now
            If Val(yearNo) < 1450 Then
                culture = New System.Globalization.CultureInfo("ar-SA", True)
            Else
                culture = New System.Globalization.CultureInfo("en-US", True)
            End If

            Dim myDate As DateTime = DateTime.ParseExact(DateAsString.Trim, DateFormat.Trim, culture)
            Return myDate
        Else
            Return Now
        End If
    End Function 


و الله المستعان


RE: طريقة تحويل تاريخ مدخل يدوياً كنص الى متغير من نوع تاريخ - boudyonline - 14-12-15

بارك الله فيك


RE: طريقة تحويل تاريخ مدخل يدوياً كنص الى متغير من نوع تاريخ - عدنان الشمري - 14-12-15

عاشت الايادي