PDA

View Full Version : تقویم هجری قمری



SYSMAN
دوشنبه 03 بهمن 1384, 00:15 صبح
چه طور می تونم از تقویم قمری در Net 2005. استفاده کنم؟
از HijriCalendar نمی شه استفاده کرد(2 روز با تقویم قمری که ما در تقویم ها داریم فرق داره)

linux
دوشنبه 03 بهمن 1384, 19:04 عصر
چرا میشه استفاده کرد می تونی تنظیم کنی

SYSMAN
دوشنبه 03 بهمن 1384, 23:15 عصر
چه طوری می شه تنظیم کرد؟

linux
سه شنبه 04 بهمن 1384, 00:21 صبح
Dim hc As New Globalization.HijriCalendar
hc.HijriAdjustment = 2

بقیه اش هم از msdn

niloufar
سه شنبه 04 بهمن 1384, 14:00 عصر
سلام
شنیدم تو 2005 شمسی هم گذاشته. آیا کسی خبری داره؟

اَرژنگ
سه شنبه 04 بهمن 1384, 14:27 عصر
سلام
شنیدم تو 2005 شمسی هم گذاشته. آیا کسی خبری داره؟
http://polytopia.com.au/default%5Blang=fa%5D.aspx?obj=tips%5B11%5D%5Blang= fa%5D

niloufar
سه شنبه 04 بهمن 1384, 16:27 عصر
http://polytopia.com.au/default%5Blang=fa%5D.aspx?obj=tips%5B11%5D%5Blang= fa%5D
سلام
خیلی ممنون
من سعی کردم که بر عکس اون کد رو عمل کنم یعنی میلادی بدهم و شمسی بگیرم، اما بازم خود میلادیه را برگردوند، چرا؟
شما یا هر یک از دوستان میشه توضیحات کامل تری در مورد کلاس های مربوط به تقویم بدهید؟

linux
سه شنبه 04 بهمن 1384, 20:10 عصر
!
اگر به چندتا موضوع قبلتر نگاه کنی من یه مثال هم زدم.
توی msdn هم کاملا توضیح داده

اَرژنگ
چهارشنبه 05 بهمن 1384, 02:50 صبح
سلام
خیلی ممنون
من سعی کردم که بر عکس اون کد رو عمل کنم یعنی میلادی بدهم و شمسی بگیرم، اما بازم خود میلادیه را برگردوند، چرا؟
شما یا هر یک از دوستان میشه توضیحات کامل تری در مورد کلاس های مربوط به تقویم بدهید؟

کدام قسمت کد را دوست دارید توضیح بدم؟
شما ممکنه کدی را که برایه تبدیل میلادی به شمسی استفاده کردید را با مثال تبدیل تاریخ میلادی به شمسی که در لینکی که فرستادم مقایسه کنید. هر دوتاشن یکیین؟

SYSMAN
چهارشنبه 05 بهمن 1384, 13:28 عصر
دستت درست linux

niloufar
پنج شنبه 06 بهمن 1384, 14:17 عصر
سلام
من دقیقا همون کد اونجا را (که اول فقط برای شمسی به میلادی بود و الان دو طرف هم داره) رو دقیقا کپی کردم ولی در هر دوصورت میلادیه اونا رو نشون میده.
اصلا همین که کلاس Date ساخته میشه (در New کردن یک نمونه از آن) هرچی باشه، میلادی برمیگردونه!!!

linux
پنج شنبه 06 بهمن 1384, 17:00 عصر
<code>
Dim pc As New Globalization.PersianCalendar
Dim d As Date = Now.Date
MsgBox(pc.ToDateTime(1384, 11, 6, 0, 0, 0, 0))
MsgBox(pc.GetYear(d) & "/" & pc.GetMonth(d) & "/" & pc.GetDayOfMonth(d))
</code>
این هم یک مثال

اَرژنگ
جمعه 07 بهمن 1384, 04:51 صبح
سلام
من دقیقا همون کد اونجا را (که اول فقط برای شمسی به میلادی بود و الان دو طرف هم داره) رو دقیقا کپی کردم ولی در هر دوصورت میلادیه اونا رو نشون میده.
اصلا همین که کلاس Date ساخته میشه (در New کردن یک نمونه از آن) هرچی باشه، میلادی برمیگردونه!!!

مرسی، درستش کردم، تستش هم کردم، برایه تبدیل از هر نوع تقویمی میتوانید استفاده‌اش کنید.
به هیچ مشکلی نباید بر بخورید، مشکلی داشتید بهم لطفاً اطلاع بدید

niloufar
یک شنبه 09 بهمن 1384, 13:34 عصر
سلام
ممنون. صحیح بود.

SYSMAN
شنبه 15 بهمن 1384, 21:22 عصر
Dim hc As New Globalization.HijriCalendar
hc.HijriAdjustment = 2

بقیه اش هم از msdn

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

linux
شنبه 15 بهمن 1384, 21:46 عصر
:)
تقویمی که روی شکم محاسبه بشه همین هست.
با توجه به اینکه این تقویم قمری بر اساس رویت هلال ماه هست خیلی دقیق نیست آن وقت چیزی که توی عربستان استخراج می کنند با ایران فرق می کنه و خود اعراب الان دارن از تقویم میلادی استفاده می کنند. مصر و عراق و .. کلا همه کشورها بجز عربستان تقویم رسمی شان میلادی هست و کشورهای عربی هم مراسم مذهبی را با عربستان انجام میدهند این وسط ماایرانیها ساز دیگری میزنیم! حالا این تقویم را برای چه کاری می خواهید؟

SYSMAN
شنبه 15 بهمن 1384, 23:58 عصر
یک برنامه تقویم قمری لازم دارم که با تقویم ما یکسان باشه.
کد تبدیل میلادی یا شمسی به قمری نیست؟

linux
یک شنبه 16 بهمن 1384, 02:10 صبح
چرا من قبلا کدش را فرستادم یه جستجو کن در این فروم و در گوگل دنبال calmath بگرد.

Peyman_Ranjbar
یک شنبه 16 بهمن 1384, 03:00 صبح
توی msdn گفته که در حالت عادی بین صفر تا دوروز خطا داره البته شاید من درست متوجه نشدم
خودتون این قسمت رو بخونین شاید تقصیر رمضان باشه!

This implementation of the HijriCalendar class adjusts the calendar date by adding or subtracting a value from zero to two days to accommodate the variances in the start and the end of Ramadan and to accommodate the date difference between countries/regions. That value is stored in the HijriAdjustment (http://barnamenevis.org/forum/P_System_Globalization_HijriCalendar_HijriAdjustme nt.htm) property. If HijriAdjustment is not set explicitly, it derives its value from the settings in Regional and Language Options (or Regional Options or Regional Settings) in Control Panel in Windows and is stored in the registry value HKEY_CURRENT_USER\Control Panel\International\AddHijriDate. However, that information can change during the life of the AppDomain. The HijriCalendar class does not detect changes in the system settings automatically.

SYSMAN
یک شنبه 16 بهمن 1384, 11:07 صبح
حق با شماست ولی چیزی که اشتباه باشه که به مفت هم نمی ارزه. دست شما هم درد نکنه linux من اون تابع calmath هم امتحان کردم اون هم درست جواب نمی ده.

Black_Queen
چهارشنبه 30 آبان 1386, 00:30 صبح
ببخشید ولی من اصلا با گرفتن تاریخ درست شمسی و قمری مشکل دارم چجوری باید این کارو بکنم؟ اخه تاریخهایی که میده 2765/11/13 هستش برای فمری و برای شمسی هم یک تاریخ بی معنی دیگه مثل همین !!!!

ali_najari
یک شنبه 04 آذر 1386, 01:57 صبح
میخواستم ببینم چطوری میشه یه کدی رو از دستگاه کدخوان گرفت ؟

amirsajjadi
یک شنبه 04 آذر 1386, 09:47 صبح
با سلام
این کد برای تبدیل میلادی به شمسی

Dim F As New Globalization.PersianCalendar
MsgBox(DateSerial(F.GetYear(Now), F.GetMonth(Now), F.GetDayOfMonth(Now)))

برای قمری هم از کلاس Hijri استفاده کنید و طریقه استفادشم دقیقا مثل شمسی