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

20 באפריל 2008

אין תגובות

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

' ספירת העומר – כולל שנים מעוברות
' משה למפרט – 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));
}

הוסף תגובה
facebook linkedin twitter email

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *