PDA

View Full Version : گرفتن چندمین روز سال در تاریخ شمسی



forodo
دوشنبه 30 اردیبهشت 1392, 14:38 عصر
من می خواستم مثلاً ببینم امروز به تاریخ 30/02/90 چندمین روز سال است؟
می دونم که تابعی به نام DayOfYear موجود هست ولی این برای تاریخ میلادی است.

mousa1992
دوشنبه 30 اردیبهشت 1392, 14:46 عصر
از کلاس persianCalendar استفاده کن و باید همین متدهارو داشته باشه

forodo
دوشنبه 30 اردیبهشت 1392, 14:59 عصر
استفاده کردم ولی نشد.
اگه امکانش هست کدی که خودتان جواب می گیرید را بنویسید.
با تشکر

mousa1992
دوشنبه 30 اردیبهشت 1392, 15:14 عصر
امروز روز چندم از سال هست ؟ 61 ؟

PersianCalendar pc = new PersianCalendar();
this.Text = pc.GetDayOfYear(DateTime.Now).ToString();

csharpdoost
دوشنبه 30 اردیبهشت 1392, 15:19 عصر
using System.Globalization;
DateTime date_time = DateTime.Now;
PersianCalendar persianCal = new PersianCalendar();
string days = persianCal.GetDayOfYear(date_time).ToString();

forodo
دوشنبه 30 اردیبهشت 1392, 17:32 عصر
از همه دوستان خیلی ممنون
کارم راه افتاد ولی یه جای کارم می لنگه.
می خوام وقتی یه تاریخ خودم بهش می دم بهم بگه که چندمین روز سال؟

label1.Text = pc.GetDayOfYear(1392,02,30).ToString();

اینی که نوشتم رو ایراد می گیره.

mousa1992
دوشنبه 30 اردیبهشت 1392, 19:19 عصر
اول تاریخ شمسیتو تبدیل به میلادی کن

public DateTime shamsitomiladi(string datestr)
{
int year = int.Parse(datestr.Substring(0, 4));
int month = int.Parse(datestr.Substring(5, 2));
int day = int.Parse(datestr.Substring(8, 2));
DateTime date = pcalendar.ToDateTime(year, month, day, 0, 0, 0, 0);
return date;
}

موفق باشی

forodo
دوشنبه 30 اردیبهشت 1392, 19:39 عصر
از شما خیلی ممنونم ولی نمی دونم چطوری باید از این تابع استفاده کنم. آیا این طوری درست است؟

label2.Text = shamsitomiladi("1392/04/28").ToString();

لطفاً برنامه شو می تونی به ما بگی.
مثلاً تاریخ 1392/04/28 رو که به صورت رشته هستش نه به صورت تاریخ بهش بدیم و بهمون بگه این این تاریخ چندمین روز سال در تاریخ شمسی هستش؟
اگه اینو بگی خیلی ممنونت می شم.

mousa1992
دوشنبه 30 اردیبهشت 1392, 20:36 عصر
همین تابعی رو که قرار دادم دقیقا به همین صورت که نوشتین قرار بدین بجای DateTime.Now ینی اینو shamsitomiladi("1392/04/28") قرار بده بجا DateTime.Now توی این دستوراتPersianCalendar pc = new PersianCalendar();
this.Text = pc.GetDayOfYear(DateTime.Now).ToString();



متدی که قرار دادم ی رشته که حاوی تاریخ شمسی هست رو میگیره و اونو به تاریخ میلادی تبدیل می کنه ینی به DateTime تبدیلش میکنه

موفق باشی

forodo
دوشنبه 30 اردیبهشت 1392, 21:35 عصر
خیلی آقایی
کارم راه افتاد.
شرمنده من درست منظور شمارو متوجه نمی شدم آخه ما تازه کاریم و بازم ممنون که حوصله کردی و جواب مارو دادی.
من دنبال این بودم.
PersianCalendar pc = new PersianCalendar();
this.Text = pc.GetDayOfYear(Convert.ToDateTime(shamsitomiladi("1392/04/28"))).ToString();

mousa1992
دوشنبه 30 اردیبهشت 1392, 21:38 عصر
دوست خوبم اون convert.toDateTime اضافی هست میتونی برش داری چون متدی که قرار دادم خودش DateTime برمیگردونه

موفق باشی

mdssoft
دوشنبه 22 دی 1393, 10:48 صبح
میتونید از کتابخانه زیر هم استفاده کنید
http://www.codeproject.com/Articles/850359/Persian-Calendar-PersianDateTime-in-Csharp