Skip to content

dddeveloperrr/FarsiCalendar-

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 

Repository files navigation

کلاس رویداد های تقویم برای جاوا

سلام دوستان. من نیاز داشتم که بدونم رویداد هر روز در تقویم (هجری شمسی یا قمری یا میلادی) چی هست. برای مثال می خواستم بدونم ۵ اذر چه رویداد هایی داره. یا مثلا 5 ژانویه چه رویداد هایی داره یا مثلا 12 محرم چه رویداد هایی داره. توی اینترنت گشتم دیدم چیزی وجود نداره، تصمیم گرفتم خودم یکی بسازم.
 
رویداد های ماه های قمری مانند ۱۲ محرم که میشه روز عاشورا
رویداد های ماه های میلادی مثلا ۱۱ سپتامبر که میشه حادثه تروریستی برج های دوقولو
رویداد های ماه های هجری شمسی مانند 12 فروردین که میشه روز جمهوری اسلامی
 

یک کلاس نوشتم که رویداد های هر روز رو میتونید باهاش بفهمید. استفاده از این کلاس خیــــلی راحت هست. کافیه توی پروژتون یک کلاس به نام FarsiCalendar بسازید و کد هایی که نوشتم رو توش کپی پیست کنید.

استفاده از این کلاس راحته. یه مثال میزنم

FarsiCalendar object = new FarsiCalendar ();

String rooydad = object.get(7, "tir");
System.out.println(rooydad);

Output:

انفجار دفتر حزب جمهوری اسلامی و شهادت دکتر بهشتی و 72 نفر از اعضای حزب-روز قوه قضاییه-


String rooydad = object.get(12, "moharam");
System.out.println(rooydad);

Output:

شهادت امام زین العابدین علیه السلام-


String rooydad = object.get(8, "march");
System.out.println(rooydad);

Output:

روزجهانی زنان-


 

با این کد به راحتی میتونید رویداد های ۷ تیر، ۱۲ محرم و ۸ مارس رو به دست بیارید. اگه در یک روز چندتا رویداد باشه با علامت - از همدیگه جدا شدن.

 برای اینکه بفهمید در تقویم، مثلا در روز 14 بهمن چه رویداد هایی وجود داره، باید اول بفهمید که 14 بهمن چندم (مثلا ژانویه) میشه و چندم ( مثلا محرم) میشه. بعدش برید رویداد تک تک اون روز ها رو بخونید

پس ترتیب کارهاتون به صورت زیر میشه

اول: باید بفهمید 14 بهمن میشه چندم (مثلا ژانویه) و چندم ( مثلا محرم). فرض میکنیم میشه 5 ژانویه و 19 محرم

دوم: باید رویداد های 14 بهمن رو بخونید

سوم: باید رویداد های 5 ژانویه رو بخونید

چهارم: باید رویداد های 19 محرم رو بخونید

مجموع این رویداد ها میشن رویداد های 14 بهمن که در تقویم ما نوشته میشن

برای تبدیل هجری شمسی به قمری و میلادی هم باید یک متد داخل همین کلاس بنویسم که فعلا وقت نکردم (دوستان، بعد از کلی سرچ در گوگل و گشتن در وبسایت های مختلف، کدهای زیادی رو برای تبدیل تاریخ میلادی به شمسی پیدا کردم ولی ظاهرا همشون ایراد داشتن به نوعی. ولی کامل ترین کتاب خانه ای که برای تبدیل تمام انواع تقویم ها پیدا کردم مال شرکت معروف IBM هست که میتونید تمااااام تقویم ها رو باهاش تبدیل کنید.

ادرس سایتش رو میزارم براتون. همچنین توی یوتوب هم اگه اسمشو سرچ کنید احتمالا فیلم های اموزشی زیادی ازش پیدا کنین. اسم کتابخانه این هست ICU4J ادرس سایتش هم اینه:

https://unicode-org.github.io/icu-docs/apidoc/released/icu4j/

برداشته شده  time.ir دوستان تمامی اطلاعات از سایت