Tôi đã làm việc trên nhiều dự án với ngày chuyển đổi. ví dụ, tôi làm việc theo lịch mặt trời và cách chuyển đổi chúng sang ngày Gregorian và ngược lại. Lịch mặt trời (lịch Ba Tư) gần như tương tự với ngày Gregorian về số ngày trong một năm [nhảy hay không].
Nhưng gần đây tôi đã làm việc trong một dự án với lịch âm. Khi tôi nghiên cứu về lịch âm lịch, tôi nhận ra rằng không có bất kỳ phương pháp logic đơn lẻ nào để chuyển đổi hệ mặt trăng thành năng lượng mặt trời (ít nhất là theo như tôi biết).
Dưới đây là một số liên kết tham khảo mà tôi đã nghiên cứu về chúng:
- Không thể chuyển đổi từ ngày Hijri sang ngày Gregorian (c #)
- Chuyển đổi ngày từ Lịch Hijri sang Lịch Gregorian và ngược lại
- Ngày Hijri Đến gregorian bằng DateTime.Pude
- Chuyển đổi ngày Hijri sang dữ liệu Gregorian
Khi tôi theo dõi các liên kết ở trên, đào tạo và thử nghiệm mọi người đã trình bày các thuật toán, tôi nhận thấy rằng không ai trong số chúng là hoàn toàn chính xác.
Chỉ cần nói rằng, chỉ cần Chuyển đổi "1441/02/30" [Safar 30th]
sang ngày Gregorian mà mọi phương pháp mà bạn muốn thử.
Hình ảnh sau đây là hữu ích cho ví dụ đã nói ở trên.
Tôi đặt ở đây một số mã kiểm tra và thất bại:
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();
Lỗi cho mã trên:
DateTime được đại diện bởi chuỗi không được hỗ trợ trong lịch System.Globalization.HijriCalWiki.
HijriCalendar hc = new HijriCalendar();
DateTime date = new DateTime(1441, 2, 30, hc);
return date.ToString();
Lỗi cho mã trên:
"Ngày phải từ 1 đến 29 cho tháng 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();
Lỗi cho mã trên:
"Ngày phải từ 1 đến 29 cho tháng 2."
Sau đó, tôi đã cố gắng để hiểu rằng có bất kỳ thuật toán nào để triển khai ngày chuyển đổi Hijri sang ngày Gregorian không?
Vì vậy, tôi đã thử nghiệm một số công cụ chuyển đổi ngày trực tuyến Hồi giáo và tôi đã ngạc nhiên!
Chỉ cần cố gắng nhập "1441/2/30"
vào cả hai công cụ chuyển đổi ngày.
cái đầu tiên trở lại October 30, 2019
Và cái thứ hai trở về 29 October 2019
Hijri gregorian-convert Hồi giáo chuyển đổi
ngày - Bộ chuyển đổi lịch Gregorian
Vì vậy, tôi không biết có bất kỳ thuật toán thực tế nào để chuyển đổi ngày Hijri sang Gregorian.
Cảm ơn trước cho thời gian của bạn.
Để biết thêm thông tin, https://www.wikiwand.com/simple/Islamic_calWiki
Cập nhật : Tôi biết không có bất kỳ thư viện chính xác nào để biết. nhưng nếu ai đó có kiến thức hoặc chi tiết về Lịch Hijri (tất cả giao diện của nó), vui lòng chỉ mô tả ở đây Tôi thực sự muốn triển khai lịch Hijri cho tất cả.
October 30, 2019 wed
hoặc October 29, 2019 tue
. Tôi đã thử ngay bây giờ.
Omar khayyam
nhà toán học Ba Tư. Lịch Ba Tư có 365 ngày (365 trong một năm nhuận) nhưng lịch âm là ít hơn 11-12 ngày so với lịch Ba Tư.