Saya telah bekerja di banyak proyek dengan konversi tanggal. misalnya, saya bekerja di kalender matahari dan bagaimana mengubahnya menjadi tanggal Gregorian dan sebaliknya. Kalender matahari (kalender Persia) hampir mirip dengan tanggal Gregorian dalam hal jumlah hari dalam setahun [melompat atau tidak].
Tetapi saya baru-baru ini mengerjakan sebuah proyek dengan kalender lunar. Ketika saya meneliti kalender Lunar, saya menyadari bahwa tidak ada satu pun metode logis untuk mengubah sistem bulan menjadi surya (setidaknya sejauh yang saya tahu).
Berikut adalah beberapa tautan referensi yang saya teliti:
- Tidak dapat mengonversi dari Tanggal Hijriah ke tanggal Gregorian (c #)
- Konversi tanggal dari Kalender Hijriah ke Kalender Gregorian dan sebaliknya
- Hijri Date To gregorian menggunakan DateTime.Parse
- Ubah tanggal Hijriah menjadi data Gregorian
Ketika saya mengikuti tautan di atas, pelatihan, dan menguji orang-orang yang menyajikan algoritma, saya perhatikan bahwa tidak ada yang benar-benar benar.
Cukuplah untuk mengatakan, cukup Konversikan "1441/02/30" [Safar 30th]
ke tanggal Gregorian yang setiap metode yang ingin Anda coba.
Gambar berikut berguna untuk contoh yang disebutkan di atas.
Saya taruh di sini beberapa kode tes saya dan gagal:
CultureInfo arSA = new CultureInfo("ar-SA");
arSA.DateTimeFormat.Calendar = new HijriCalendar();
var dateValue = DateTime.ParseExact("1441/02/30", "yyyy/MM/dd", arSA);
return dateValue.ToString();
Kesalahan untuk Kode di atas:
DateTime yang diwakili oleh string tidak didukung di Sistem kalender. Globalisasi.HijriCalendar.
HijriCalendar hc = new HijriCalendar();
DateTime date = new DateTime(1441, 2, 30, hc);
return date.ToString();
Kesalahan untuk Kode di atas:
"Hari harus antara 1 dan 29 untuk bulan 2."
string hijri = "1441/2/30";
HijriCalendar hc = new HijriCalendar();
int year = int.Parse(hijri.Substring(0, 4));
string rem = hijri.Remove(0, 5);
int end = rem.IndexOf('/', 0);
int month = int.Parse(rem.Substring(0, end));
rem = rem.Remove(0, end + 1);
int day = int.Parse(rem);
DateTime date = new DateTime(year, month, day, hc);
return date.ToShortDateString();
Kesalahan untuk Kode di atas:
"Hari harus antara 1 dan 29 untuk bulan 2."
Setelah itu, saya mencoba untuk memahami bahwa adakah algoritma untuk menyebarkan tanggal Hijriah yang dikonversi menjadi tanggal Gregorian?
Jadi saya menguji beberapa konverter tanggal online Islam dan saya terkejut!
Coba masukkan "1441/2/30"
kedua konverter tanggal.
yang pertama kembali October 30, 2019
Dan yang kedua kembali 29 October 2019
Hijriah gregorian-converter
Islamic Date Converter - Gregorian Calendar Converter
Jadi saya tidak tahu apakah ada algoritma nyata untuk mengubah tanggal Hijriah menjadi Gregorian.
Terima kasih sebelumnya atas waktu Anda.
Untuk info lebih lanjut, https://www.wikiwand.com/simple/Islamic_calendar
Pembaruan : Saya tahu tidak ada perpustakaan yang benar untuk mengetahui. tetapi jika seseorang memiliki pengetahuan atau detail tentang Kalender Hijriah (semua antarmuka-nya) tolong jelaskan di sini saya benar-benar ingin menggunakan kalender Hijriah untuk semua.
October 30, 2019 wed
atau October 29, 2019 tue
. Saya sudah mencoba sekarang.
Omar khayyam
ahli matematika Persia. Kalender Persia memiliki 365 hari (366 dalam satu tahun kabisat) tetapi kalender Lunar adalah 11-12 hari lebih rendah dari kalender Persia.