VB.net : Tarikh dan Kalendar Hijrah

Membangunkan aplikasi yang boleh memaparkan tarikh hijrah atau apa-apa tarikh dalam kalandar lain agak mudah dalam platform .NET. .NET Framework dibina dengan sokongan untuk globalisasi iaitu sokongan bahasa, bentuk huruf dan simbol-simbol tempatan. .NET framework membekalkan kelas Calendar dan juga implementasi kelas-kelas berikut.

• ChineseLunisolarCalendar
• EastAsianLunisolarCalendar
• GregorianCalendar
• HebrewCalendar
• HijriCalendar
• JapaneseCalendar
• JapaneseLunisolarCalendar
• JulianCalendar
• KoreanCalendar
• KoreanLunisolarCalendar
• PersianCalendar
• TaiwanCalendar
• TaiwanLunisolarCalendar
• ThaiBuddhistCalendar
• UmAlQuraCalendar

Untuk kalendar Hijri, dua algoritma boleh digunakan iaitu HijriCalendar dan UmAlQuraCalendar. Adalah dicadangkan supaya menggunakan algoritma UmAlQuraCalendar kerana ia lebih tepat. Rujukan yang perlu:

Imports System.Globalization
Imports System.Text
Imports System.Threading

Jika perlu, simpan atau backup budaya semasa, iaitu tetapan budaya komputer sebelum larian.

Private budayaAsal As CultureInfo = Thread. _
CurrentThread.CurrentCulture.Clone

Contoh kod aturcara:
Dim teksAr, teksMy As New StringBuilder 'teks output
Dim budaya As New CultureInfo("ar-SA") 'tetap budaya baru untuk thread
Dim hb, bln, thn As Integer
Dim algUmAlQura As Calendar = New UmAlQuraCalendar 'jenis kalendar
'semakan julat tarikh yang disokong, rujuk MSDN
If tarikh >= algUmAlQura.MinSupportedDateTime And _
tarikh <= algUmAlQura.MaxSupportedDateTime Then
hb = algUmAlQura.GetDayOfMonth(tarikh)
bln = algUmAlQura.GetMonth(tarikh)
thn = algUmAlQura.GetYear(tarikh)
Dim NamaBlnAr As String = budaya.DateTimeFormat. _
GetMonthName(bln) 'nombor bulan dalam kalendar
Dim NamaBlnMy As String
Select Case bln 'untuk dapatkan nama dalam bahasa melayu
Case 1 : NamaBlnMy = "Muharam"
Case 2 : NamaBlnMy = "Safar"
Case 3 : NamaBlnMy = "Rabiul Awal"
Case 4 : NamaBlnMy = "Rabiul Akhir"
Case 5 : NamaBlnMy = "Jamadil Awal"
Case 6 : NamaBlnMy = "Jamadil Akhir"
Case 7 : NamaBlnMy = "Rejab"
Case 8 : NamaBlnMy = "Syaaban"
Case 9 : NamaBlnMy = "Ramadhan"
Case 10 : NamaBlnMy = "Syawal"
Case 11 : NamaBlnMy = "Zul Kaedah"
Case Else : NamaBlnMy = "Zul Hijjah"
End Select
teksMy.AppendLine(hb.ToString & " " & NamaBlnMy & _
" " & thn.ToString)
teksAr.AppendLine(hb.ToString & " " & NamaBlnAr & _
" " & thn.ToString)
End If
Thread.CurrentThread.CurrentCulture = _
New CultureInfo("ar-SA")
Dim trAr As String = keNoArab(CInt(tarikh. _
ToString("dd"))) & " " & tarikh.ToString _
("MMMM") & " " & keNoArab(CInt(tarikh. _
ToString("yyyy")))
teksAr.AppendLine(trAr)
TextBoxHijri.Text = teksAr.ToString
TextBoxHijri.Text &= vbCrLf & teksMy.ToString
Thread.CurrentThread.CurrentCulture = budayaAsal


Contoh implementasi dalam program kalendar:




Selamat mencuba.

Ulasan

Catatan popular daripada blog ini

Resolusi dan saiz gambar digital

Baiki Komputer Sendiri? - Hardware Asas

Windows 10 hang setiap kali on PC?