PDA

View Full Version : سوال: دریافت مقادیر روز، ماه و سال شمسی و قمری از کامپوننت BehComponents



zzhkfa
یک شنبه 30 شهریور 1399, 16:56 عصر
من می خوام زمانی که روی تاریخ یک روز کلیک می کنم اطلاعات زیر را دریافت کنم و در دیتابیس ذخیره کنم دوستان راهنمایی کنند چگونه می توانم از BehComponents این موارد را استخراج نمایم.

* تاریخ روز: مثلا 1399/6/3
* نام روز: جمعه
* نام ماه: شهریور
* تاریخ قمری: 1422/6/10
* تاریخ میلادی: 2020/5/14
152184

لینک دانلود سورس (http://s14.picofile.com/file/8408818918/PersianCalender.zip.html)

the king
یک شنبه 30 شهریور 1399, 21:20 عصر
من می خوام زمانی که روی تاریخ یک روز کلیک می کنم اطلاعات زیر را دریافت کنم و در دیتابیس ذخیره کنم دوستان راهنمایی کنند چگونه می توانم از BehComponents این موارد را استخراج نمایم.

* تاریخ روز: مثلا 1399/6/3
* نام روز: جمعه
* نام ماه: شهریور
* تاریخ قمری: 1422/6/10
* تاریخ میلادی: 2020/5/14


فرض کنیم که در dateTimePickerX1 یک تاریخی رو انتخاب می کنید، نتیجه این انتخاب کردن این میشه که رخداد SelectedDateChanged اتفاق می افته و مقادیر مشخصه های زیر هم عوض میشه :
SelectedDateInDateTime
SelectedDateInStringEnglish
SelectedDateInStringPersian

حالا تاریخ روز شمسی میشه :

var persian = dateTimePickerX1.SelectedDateInStringPersian;

نام روز میشه :

var dayOfWeek = NameOfDayOfWeek(dateTimePickerX1. GetSelectedDateInPersianDateTime(). DayOfWeek);

private static string NameOfDayOfWeek(DayOfWeek dayOfWeek)
{
switch (dayOfWeek)
{
case DayOfWeek.Sunday:
return "یک شنبه";
case DayOfWeek.Monday:
return "دو شنبه";
case DayOfWeek.Tuesday:
return "سه شنبه";
case DayOfWeek.Wednesday:
return "چهار شنبه";
case DayOfWeek.Thursday:
return "پنج شنبه";
case DayOfWeek.Friday:
return "جمعه";
case DayOfWeek.Saturday:
return "شنبه";
default:
return "";
}
}


نام ماه میشه :

var monthOfYear = MonthOfYear( dateTimePickerX1. GetSelectedDateInPersianDateTime().Month);

private static string MonthOfYear(int month)
{
switch (month)
{
case 1:
return "فروردین";
case 2:
return "اردیبهشت";
case 3:
return "خرداد";
case 4:
return "تیر";
case 5:
return "مرداد";
case 6:
return "شهریور";
case 7:
return "مهر";
case 8:
return "آبان";
case 9:
return "آذر";
case 10:
return "دی";
case 11:
return "بهمن";
case 12:
return "اسفند";
default:
return "";
}
}


تاریخ قمری میشه این که البته اون 0 برای تنظیم جلو و عقب کردن تاریخ ئه و عددی بین 2- الی 2+ بهش اختصاص می دهید تا با ستاد استهلال هماهنگ بشه :

var hijriDateString = HijriDateString( dateTimePickerX1.SelectedDateInDateTime, 0);

private static string HijriDateString(DateTime dateTime, int adjustment)
{
var hijriCalendar = new System.Globalization.HijriCalendar();
hijriCalendar.HijriAdjustment = adjustment;
var year = hijriCalendar.GetYear(dateTime);
var month = hijriCalendar.GetMonth(dateTime);
var day = hijriCalendar.GetDayOfMonth(dateTime);
return string.Format("{0}/{1:00}/{2:00}", year, month, day, System.Globalization.CultureInfo.InvariantCulture) ;
}


تاریخ میلادی هم که میشه این :

var gregorian = dateTimePickerX1.SelectedDateInStringEnglish;



private void dateTimePickerX1_SelectedDateChanged (DateTime selectedDateTime, BehComponents.PersianDateTime selectedPersianDateTime)
{
var persian = dateTimePickerX1.SelectedDateInStringPersian;
var dayOfWeek = NameOfDayOfWeek( dateTimePickerX1.GetSelectedDateInPersianDateTime( ). DayOfWeek);
var monthOfYear = MonthOfYear( dateTimePickerX1.GetSelectedDateInPersianDateTime( ) .Month);
var hijriDateString = HijriDateString( dateTimePickerX1.SelectedDateInDateTime, 0);
var gregorian = dateTimePickerX1.SelectedDateInStringEnglish;
}

private static string HijriDateString(DateTime dateTime, int adjustment)
{
var hijriCalendar = new System.Globalization.HijriCalendar();
hijriCalendar.HijriAdjustment = adjustment;
var year = hijriCalendar.GetYear(dateTime);
var month = hijriCalendar.GetMonth(dateTime);
var day = hijriCalendar.GetDayOfMonth(dateTime);
return string.Format("{0}/{1:00}/{2:00}", year, month, day, System.Globalization.CultureInfo. InvariantCulture);
}

private static string MonthOfYear(int month)
{
switch (month)
{
case 1:
return "فروردین";
case 2:
return "اردیبهشت";
case 3:
return "خرداد";
case 4:
return "تیر";
case 5:
return "مرداد";
case 6:
return "شهریور";
case 7:
return "مهر";
case 8:
return "آبان";
case 9:
return "آذر";
case 10:
return "دی";
case 11:
return "بهمن";
case 12:
return "اسفند";
default:
return "";
}
}

private static string NameOfDayOfWeek(DayOfWeek dayOfWeek)
{
switch (dayOfWeek)
{
case DayOfWeek.Sunday:
return "یک شنبه";
case DayOfWeek.Monday:
return "دو شنبه";
case DayOfWeek.Tuesday:
return "سه شنبه";
case DayOfWeek.Wednesday:
return "چهار شنبه";
case DayOfWeek.Thursday:
return "پنج شنبه";
case DayOfWeek.Friday:
return "جمعه";
case DayOfWeek.Saturday:
return "شنبه";
default:
return "";
}
}