23-04-23, 05:12 PM
(15-04-23, 02:30 AM)Taha Okla كتب : السلام عليكم ورحمة الله وبركاته
هذا كود لتحويل الوقت لكلمات عربية
(الوقت المقروء من الساعة أو قاعدة بيانات مثلاً ،، وليس تفقيط للوقت وقت العمل المتراكم الذي يساوي عشرات الساعات، فذاك شيء آخر)
الاخ الكريم Taha تم عمل تعديل بسيط للحصول على الوقت التراكمي
المشكلة في الساعة 00 تصبح 12 فهل يمكنك المساعدة
لإني استخدمها لحساب الساعات ، مثل "ساعات التأخر" عندما تكون "00:10:00" يفترض ان تكون عشر دقائق فقط
شاكر ومقدر للجميع
كود :
Public Function UNitToText(ByVal Time_hhmmss As DateTime) As String
Dim strNum As String = Time_hhmmss.ToString("hh:mm:ss")
'========================================================
Dim TimeArray() As String = Split(strNum, ":")
Dim strH As String, StrM As String, StrS As String
strH = GetHour_String(TimeArray(0))
StrM = Getmmss_String(TimeArray(1), "دقيقة", "دقيقتان", "دقائق")
StrS = Getmmss_String(TimeArray(2), "ثانية", "ثانيتان", "ثوانٍ")
Return strH & StrM & StrS
End Function
Private Function GetHour_String(hH As String) As String
Select Case hH
Case "00"
Return "صفر"
Case "01"
Return "ساعة واحدة"
Case "02"
Return "ساعتان"
Case "03"
Return "ثلاث ساعات"
Case "04"
Return "اربع ساعات"
Case "05"
Return "خمس ساعات"
Case "06"
Return "ست ساعات"
Case "07"
Return "سبع ساعات"
Case "08"
Return "ثمان ساعات"
Case "09"
Return "تسع ساعات"
Case "10"
Return "عشر ساعات"
Case "11"
Return "احدى عشرة ساعة"
Case "12"
Return "اثنتي عشرة ساعة"
Case Else
Return ""
End Select
End Function
Private Function Getmmss_String(mmss As String, sQ1 As String, sQ2 As String, sQ3 As String) As String
Dim Arr1(0 To 9) As String
Dim Arr2(0 To 5) As String
Arr1(0) = ""
Arr1(1) = "واحد"
Arr1(2) = "اثنان"
Arr1(3) = "ثلاثة"
Arr1(4) = "أربعة"
Arr1(5) = "خمسة"
Arr1(6) = "ستة"
Arr1(7) = "سبعة"
Arr1(8) = "ثمانية"
Arr1(9) = "تسعة"
Arr2(0) = ""
Arr2(1) = "عشرة"
Arr2(2) = "عشرون"
Arr2(3) = "ثلاثون"
Arr2(4) = "أربعون"
Arr2(5) = "خمسون"
'========================================================
Dim S1 As Integer = Mid(mmss, 2, 1)
Dim S11 As String = Arr1(S1)
Dim S2 As Integer = Mid(mmss, 1, 1)
Dim S22 As String = Arr2(S2)
Dim SS0 As String
If S2 = "0" Then
Select Case S1
Case "1"
S11 = sQ1
Case "2"
S11 = sQ2
Case Is > 2
S11 = S11 & " " & sQ3
End Select
SS0 = S11
ElseIf S2 = "1" Then
Select Case S1
Case "1"
S11 = "أحد "
S22 = "عشر "
Case "2"
S11 = "إثنا "
S22 = "عشر "
Case Else
S22 = " عشر "
End Select
If S1 = "0" Then
SS0 = S11 & S22 & sQ3
Else
SS0 = S11 & S22 & sQ1
End If
Else
If S11.Trim() = "" Then
SS0 = S22 & " " & sQ1
Else
SS0 = S11 & " و " & S22 & " " & sQ1
End If
End If
'=========================================================
If SS0.Trim() <> "" Then SS0 = " و " & SS0
Return SS0
End Function
