تور لحظه آخری
امروز : چهارشنبه ، 16 آبان 1403    احادیث و روایات:  پیامبر اکرم (ص):هيچ دعايى زودتر از دعايى كه انسان در غياب كسى مى كند، مستجاب نمى شود.
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

تبلیغات متنی

صرافی ارکی چنج

صرافی rkchange

سایبان ماشین

دزدگیر منزل

تشریفات روناک

اجاره سند در شیراز

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

Future Innovate Tech

پی جو مشاغل برتر شیراز

لوله بازکنی تهران

آراد برندینگ

موسسه خیریه

واردات از چین

حمية السكري النوع الثاني

ناب مووی

دانلود فیلم

بانک کتاب

دریافت دیه موتورسیکلت از بیمه

قیمت پنجره دوجداره

بازسازی ساختمان

طراحی سایت تهران سایت

irspeedy

درج اگهی ویژه

تعمیرات مک بوک

دانلود فیلم هندی

قیمت فرش

درب فریم لس

زانوبند زاپیامکس

روغن بهران بردبار ۳۲۰

قیمت سرور اچ پی

خرید بلیط هواپیما

بلیط اتوبوس پایانه

قیمت سرور dl380 g10

تعمیرات پکیج کرج

لیست قیمت گوشی شیائومی

خرید فالوور

پوستر آنلاین

بهترین وکیل کرج

بهترین وکیل تهران

اوزمپیک چیست

خرید اکانت تریدینگ ویو

خرید از چین

خرید از چین

تجهیزات کافی شاپ

نگهداری از سالمند شبانه روزی در منزل

بی متال زیمنس

ساختمان پزشکان

ویزای چک

محصولات فوراور

خرید سرور اچ پی ماهان شبکه

دوربین سیمکارتی چرخشی

همکاری آی نو و گزینه دو

کاشت ابرو طبیعی و‌ سریع

الک آزمایشگاهی

الک آزمایشگاهی

 






آمار وبسایت

 تعداد کل بازدیدها : 1826734874




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

تبدیل تاریخ میلادی به هجری در سی شارپ


واضح آرشیو وب فارسی:سایت ریسک: mohammad aghajani15-05-2007, 10:10 PMمی خواستم برنامه ای بنویسم مثل برنامه date and time در ویندوز ولی با این فرق که وقتی تاریخ میلادی را انتخاب می کنیم تاریخ هجری هم نمایش بدهد ممنون می شم اگه کمک کنید someone16-05-2007, 01:39 AMسلام. برای مجموعه Net. یه Library رایگان نوشته شده برای تبدیل تاریخها که میتونین از اون استفاده کنین. از لینک زیر میتونین بگیرینش : http://www.shahabfar.com/misc/persia/ mohammad aghajani19-05-2007, 01:46 AMمن این برنامه را خودم نوشتم ولی یکسری مشکل داره اگه اشکالاتشو بر طرف کنید ممنون میشم private void button1_Click(object sender, EventArgs e) { int yyy = DateTime.Now.Year; int mmm = DateTime.Now.Month; int ddd = DateTime.Now.Day; label1.Text = Convert.ToString(yyy + "/" + mmm + "/" + ddd); int y=DateTime .Now.Year ; int m=DateTime .Now .Month ; int d=DateTime .Now .Day; int yy,mm,dd; int[] a ={ 0, 10, 11, 9, 11, 10, 10, 9, 9, 9, 8, 9, 9 }; int[] b ={ 0, 30, 30, 29, 31, 31, 31, 31, 31, 31, 30, 30, 30 }; yy=y-621; if ((y%4==0)&&(m==3)&&(d>=21)) { a[3]++; b[3]++; } if (dd > b[m]) { dd -= b[m]; mm++; lbl1.Text = Convert.ToString(yy + "/" + mm + "/" + dd); } if (m >= 4) { mm = m - 3; dd = d + a[m]; lbl1.Text = Convert.ToString(yy + "/" + mm + "/" + dd); } else { yy = y - 622; mm = m + 9; dd = d + a[m]; lbl1.Text = Convert.ToString(yy + "/" + mm + "/" + dd); } } اینم فرمم http://forum.p30world.com/C:Documents and Settingsuser.SHAIFISP-55A 847My DocumentsMy Picturesuntitled 2.bmp _H2_19-05-2007, 04:11 PMسلام عجیب است که هنوز برنامه نویسات دات نت نمیدانند که کلاسس بومی System.Globalization.PersianCalendar برای تبدیلات هجری شمسی به صورت ذاتی در دات نت وجود دارد!!!! mohammad aghajani22-05-2007, 07:50 PMمن برنامه را خودم نوشتم ودرست کار میکنه فقط اشکالی که داره وقتی به روز29اسفند می رسه به بعد به جای اینکه اول فروردین را نشان دهد می نویسد1/13/1386هر کار کردم درست نشد و این اشکال تا پایان ماه march ادامه دارد ولی از اول ماه April درست می شود کد برنامه اینه: private void button1_Click(object sender, EventArgs e) { int yy= DateTime.Now.Year; int mm = DateTime.Now.Month; int dd = DateTime.Now.Day; int year = DateTime.Now.Year; int month = DateTime.Now.Month; int day = DateTime.Now.Day; int y, m, d; int[] A ={ 0, 10, 11, 9, 11, 10, 10, 9, 9, 9, 8, 9, 9 }; int[] B ={ 0, 30, 30, 29, 31, 31, 31, 31, 31, 31, 30, 30, 30 }; y = year - 621; if ((year % 4 == 0) && (month == 3) && (day >= 21)) { A[3]++; B[3]++; } if (month >= 4) m = month - 3; else m = month + 9; d = day + A[month]; if (d > B[month]) { d -= B[month]; m++; } if ((m == 10) || (m == 11) || (m == 12)) y--; shamsi.Text = Convert.ToString(y + "/" + m + "/" + d); miladi.Text = Convert.ToString(yy + "/" + dd + "/" + mm); } } } ممنون می شم جواب بدید در ضمن منم میدونم که در دات نت همچین امکاناتی وجود داره ولی می خواستم خودم برنامه اش را بنویسم. _H2_23-05-2007, 10:01 AMسلام خیلی خیلی خیلی خیلی خیلی به توان 0/1 میبخشید!!!! ولی کد شما ارزش ندارد!!!!! چاکریم! تضمین میدهم که با روش فوق اگر هم درست کار کند هیچ اعتباری برای درست کار کردن آن در سال بعد نیست، باید کبیسه های 4 ساله و 5 ساله به شدت لحاظ شوند که حتی در کدهای به ظاهر کاملی که من دیدم هیچ یک کبیسه های پنج سال را لحاظ نکرده بودند و برنامه شان بدون شک برای بعد سال سال ؟140 درست جواب نمیدهد و نیز قبل از 1370 یا حتی 1375 . الگوریتم صحیح تبدیل اصلاً اینطوری نیست، باید جور دیگری فکر کنید! آنگاه قضیه خیلی راحت و دقیق میشود! اگر میخواهید باید الگوریتم شما بر مبنای تعداد روز گذشته از مبدا باشد. یعنی تاریخ شمسی را تبدیل کنید به تعداد کل روزهای گذشته شده از اول هجرت!!!! زیاد هم سخت نیست برابر است با : تعداد روزهای گذشته شده از اول همان سال + تعداد سالهای قبل * 365 + تعداد سالهای قبلی کبیسه 4 ساله + تعداد سالهای قبلی کبیسه 5 ساله (1) بعد هم مشخص است مقدار شمسی را به علاوه اختلاف تعداد روزهای میلادی شمسی میکنید (که با یک کالیبراسیون به راحتی بدست میآید) و به همین راحتی تعداد روزهای گذشته از اول میلاد حضرت مسیح را بدست می آوردید. (2) خود دات نت در ذات تاریخ را به صورت تعداد 100 نانو ثانیه گذشته از اول میلاد نگه میدارد، در نتیجه جمع و تفریق تاریخ ها هم بدوم توجه به تعداد ثانیه در دقیقه ... روز و هزار جفنگیات دیگه ! به راحتی و سرعت تفریق و جمع دو عدد صحیح انجام میشود، و بعد در زمان نمایش تاریخ سریعاً این عدد را بع روز و ماه و سال و... تبدیل کرده و نشان میدهد. در نتیجه عددی را که در مرحله (2) بدست آورید در 10000000 * 60 * 60* 24 ضرب میکنید و حاصل تاریخ میلادی است! برای برعکی هم به همین ترتیب اول عدد ticks های تاریخ میلادی را بر 10000000 * 60 * 60 * 24 تقسیم میکنید تا به تعداد روز برسید و آن را از اختلاف تعداد روز میلادی و شمسسی کم میکنید تا به تعداد روز از اول هجرت برسید و آنگاه برعکس معادله (1) را انجام میدهید. به این سختی ها که به نظر میرسد نیست! دقیق و راحت است و با این اوصاف جمع و تفریق دو تاریخ هم واقعاً بچه گانه و سریع و البته دقیق میشود. سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 4199]

bt

اضافه شدن مطلب/حذف مطلب




-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن