ডেট কনভার্ট সহ অনেক প্রকল্পে আমার কাজ আছে। উদাহরণস্বরূপ, আমি সৌর ক্যালেন্ডারে এবং কীভাবে এগুলিকে গ্রেগরিয়ান তারিখগুলিতে রূপান্তর করতে এবং তার বিপরীতে কাজ করি। সৌর ক্যালেন্ডার (পার্সিয়ান ক্যালেন্ডার) এক বছরের [লিপ বা না] দিনের সংখ্যার দিক দিয়ে গ্রেগরিয়ান তারিখের সাথে প্রায় একই।
তবে আমি সম্প্রতি চন্দ্র ক্যালেন্ডার সহ একটি প্রকল্পে কাজ করেছি। আমি যখন চান্দ্র ক্যালেন্ডার নিয়ে গবেষণা করেছি তখন বুঝতে পেরেছিলাম যে চান্দ্র ব্যবস্থাটিকে সৌরতে রূপান্তর করার জন্য কোনও একক যৌক্তিক পদ্ধতি নেই (কমপক্ষে আমি যতদূর জানি)।
আমি তাদের উপর গবেষণা করেছি এমন কয়েকটি রেফারেন্স লিঙ্ক এখানে দেওয়া হয়েছে:
- হিজরি তারিখ থেকে গ্রেগরিয়ান তারিখে (সি #) রূপান্তর করা যায় না
- হিজরি ক্যালেন্ডার থেকে গ্রেগরিয়ান ক্যালেন্ডারে রূপান্তর তারিখ এবং তদ্বিপরীত
- হিজরি তারিখ গ্রেগরিয়ান থেকে ডেটটাইম.পার্স ব্যবহার করে
- হিজরি তারিখকে গ্রেগরিয়ান ডাটে রূপান্তর করুন
আমি উপরের লিঙ্কগুলি, প্রশিক্ষণ এবং পরীক্ষাগুলি অনুসরণ করে লোকদের দ্বারা অ্যালগোরিদম উপস্থাপন করার সময় আমি লক্ষ্য করেছি যে এগুলির কোনওটি একেবারেই সঠিক নয়।
এটি বলার জন্য যথেষ্ট, কেবল "1441/02/30" [Safar 30th]
গ্রেগরিয়ান তারিখে রূপান্তর করুন যা আপনি চেষ্টা করতে চান এমন প্রতিটি পদ্ধতি।
নিম্নলিখিত চিত্রটি পূর্বোক্ত উদাহরণের জন্য সহায়ক।
আমি এখানে আমার কিছু পরীক্ষার কোড রেখেছি এবং ব্যর্থ হয়েছি:
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();
উপরের কোডের জন্য ত্রুটি:
স্ট্রিং দ্বারা প্রতিনিধিত্ব করা ডেটটাইম ক্যালেন্ডার সিস্টেমে সমর্থিত নয় lo গ্লোবালাইজেশন Hহিজরিক্যালেন্ডার।
HijriCalendar hc = new HijriCalendar();
DateTime date = new DateTime(1441, 2, 30, hc);
return date.ToString();
উপরের কোডের জন্য ত্রুটি:
"2 মাসের জন্য দিন অবশ্যই 1 এবং 29 এর মধ্যে হওয়া উচিত" "
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();
উপরের কোডের জন্য ত্রুটি:
"2 মাসের জন্য দিন অবশ্যই 1 এবং 29 এর মধ্যে হওয়া উচিত" "
এর পরে, আমি বুঝতে চেষ্টা করছিলাম যে হিজরি তারিখ গ্রেগরিয়ান তারিখে রূপান্তর করার কোনও অ্যালগরিদম আছে কি?
তাই আমি কিছু ইসলামিক অনলাইন তারিখ রূপান্তর পরীক্ষা করেছি এবং আমি অবাক! উভয় তারিখ রূপান্তরকারীগুলিতে
প্রবেশের চেষ্টা করুন "1441/2/30"
।
প্রথম একজন ফিরে আসছেন October 30, 2019
এবং দ্বিতীয়জন 29 October 2019
হিজরি গ্রেগরিয়ান-রূপান্তরকারী
ইসলামিক তারিখ রূপান্তরকারী - গ্রেগরিয়ান ক্যালেন্ডার রূপান্তরকারী
সুতরাং আমি জানি না যে হিজরি তারিখগুলি গ্রেগরিয়ানে রূপান্তর করার জন্য কোনও বাস্তব অ্যালগরিদম নেই।
আপনার সময় জন্য আগাম ধন্যবাদ।
আরও তথ্যের জন্য, https://www.wikiwand.com/simple/Islamic_cocolate
আপডেট : আমি জানি যে জানার জন্য কোনও সঠিক লাইব্রেরি নেই। তবে কারও কাছে যদি হিজরি ক্যালেন্ডার (এর সমস্ত ইন্টারফেস) সম্পর্কে জ্ঞান বা বিশদ থাকে তবে দয়া করে কেবল এখানে বর্ণনা করুন আমি সত্যিই সবার জন্য একটি হিজরি ক্যালেন্ডার স্থাপন করতে চাই।
October 30, 2019 wed
বা October 29, 2019 tue
। আমি এখন চেষ্টা করেছি।
Omar khayyam
পারস্য গণিতবিদ আবিষ্কার করেছেন । পার্সিয়ান ক্যালেন্ডারে 365 দিন (একটি লিপ বছরে 366) থাকে তবে চন্দ্র ক্যালেন্ডার পারস্য ক্যালেন্ডারের তুলনায় 11-12 দিন কম is