DCSIMG
ספירת העומר ב-VB.net/C# - מאחורי המסך

מאחורי המסך

משה למפרט, על תכנות מתקדם וביצועים ב-Web.

על הבלוג

עוד חדשות

אתרים שיש לי בהם יד ורגל

ספירת העומר ב-VB.net/C#

לכל מי שאי פעם יצטרך. לצרף כחלק ממחלקה או טופס/דף.

' ספירת העומר - כולל שנים מעוברות
' משה למפרט - moshel@a7.org
' http://blogs.microsoft.co.il/blogs/moshel
'
' שימוש חופשי, עם ההערה במקומה ובדף ה"אודות" של האתר או התוכנה + קישור לבלוג.
'


 Shared oHD As New Globalization.HebrewCalendar()
 Shared Nums() As String = {"אחד", "שניים", "שלושה", "ארבעה", "חמישה", _
		 "שישה", "שבעה", "שמונה", "תשעה", "עשרה"}
    Shared Dec() As String = {"עשרה", "עשרים", "שלושים", "ארבעים", "חמישים"}
    Shared Function NumToText(ByVal Num As Integer) As String
        Select Case Num
            Case 1, 3, 4, 5, 6, 7, 8, 9
                Return Nums(Num - 1)
            Case 2
                Return "שני"
            Case 11, 12, 13, 14, 15, 16, 17, 18, 19
                Return Nums(Num - 11) & " עשר"
			Case Is > 20
				If Num Mod 10 Then
					Return Dec(Int(Num / 10) - 1) & " ו" & Nums((Num Mod 10) - 1)
				Else
					Return Dec(Int(Num / 10) - 1)
				End If
		End Select
    End Function

    Shared Function OmerToText(ByVal Day As Integer) As String
        Return "היום " & NumToText(Day) & " יום לעומר"
    End Function

    Public Shared Function GetOmer(ByVal dDate As Date) As String
	dim iYear as integer = oHD.getYear(Now())
        Return OmerToText(DateDiff(DateInterval.Day,  _
			New Date(iYear, 7-oHD.isLeapYear(iYear), _
			 14, 20, 0, 0, New System.Globalization.HebrewCalendar), dDate))
    End Function

וגירסת C#

static Globalization.HebrewCalendar oHD = new Globalization.HebrewCalendar(); 
static string[] Nums = {"אחד", "שניים", "שלושה", "ארבעה", "חמישה", "שישה", "שבעה", "שמונה", "תשעה", "עשרה"}; 
static string[] Dec = {"עשרה", "עשרים", "שלושים", "ארבעים", "חמישים"}; 
// משה למפרט - moshel@a7.org 
// http://blogs.microsoft.co.il/blogs/moshel 
// 
// שימוש חופשי, עם ההערה במקומה ובדף ה"אודות" של האתר או התוכנה + קישור לבלוג. 
// 


public static string NumToText(int Num) 
{ 
    switch (Num) { 
        case 1: case 3: case 4: case 5: case 6: case 7: case 8: case 9: 
            return Nums(Num - 1); 
        case 2: return "שני"; 
        case 11:  case 12: case 13: case 14:  case 15: case 16: case 17: case 18:  case 19: 
            return Nums(Num - 11) + " עשר"; 
        case else:  
            if (Num % 10) { 
                return Dec(Conversion.Int(Num / 10) - 1) + " ו" + Nums((Num % 10) - 1); 
            } 
            else { 
                return Dec(Conversion.Int(Num / 10) - 1); 
            } 

            break; 
    } 
} 

public static string OmerToText(int Day) 
{ 
    return "היום " + NumToText(Day) + " יום לעומר"; 
} 

public static string GetOmer(System.DateTime dDate) 
{ 
    int iYear = oHD.getYear(Now()); 
    return OmerToText(DateDiff(DateInterval.Day, new System.DateTime(iYear, 7 - oHD.isLeapYear(iYear), 14, 20, 0, 0, new System.Globalization.HebrewCalendar()), dDate)); 
}