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

تبلیغات

تبلیغات متنی

خرید پرینتر سه بعدی

سایبان ماشین

armanekasbokar

armanetejarat

Future Innovate Tech

آموزشگاه آرایشگری مردانه شفیع رسالت

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

خرید یخچال خارجی

بانک کتاب

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

irspeedy

درج اگهی ویژه

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

قیمت فرش

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

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

خرید از چین

خرید از چین

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

خودارزیابی چیست

رزرو هتل خارجی

تولید کننده تخت زیبایی

سی پی کالاف

دوره باریستا فنی حرفه ای

چاکرا

استند تسلیت

کلینیک دندانپزشکی سعادت آباد

پی ال سی زیمنس

دکتر علی پرند فوق تخصص جراحی پلاستیک

تعمیر سرووموتور

تحصیل پزشکی در چین

مجله سلامت و پزشکی

تریلی چادری

خرید یوسی

مهاجرت به استرالیا

ایونا

تعمیرگاه هیوندای

کاشت ابرو با خواب طبیعی

هدایای تبلیغاتی

خرید عسل

صندوق سهامی

تزریق ژل

خرید زعفران مرغوب

تحصیل آنلاین آمریکا

سوالات آیین نامه

سمپاشی سوسک فاضلاب

بهترین دکتر پروتز سینه در تهران

صندلی گیمینگ

دفترچه تبلیغاتی

خرید سی پی

قالیشویی کرج

سررسید 1404

تقویم رومیزی 1404

ویزای توریستی ژاپن

قالیشویی اسلامشهر

قفسه فروشگاهی

چراغ خطی

ابزارهای هوش مصنوعی

آموزش مکالمه عربی

اینتیتر

استابلایزر

خرید لباس

7 little words daily answers

7 little words daily answers

7 little words daily answers

گوشی موبایل اقساطی

ماساژور تفنگی

قیمت ساندویچ پانل

مجوز آژانس مسافرتی

پنجره دوجداره

خرید رنگ نمای ساختمان

ناب مووی

خرید عطر

قرص اسلیم پلاس

nyt mini crossword answers

مشاوره تبلیغاتی رایگان

دانلود فیلم

قیمت ایکس باکس

نمایندگی دوو تهران

مهد کودک

پخش زنده شبکه ورزش

 






آمار وبسایت

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




هواشناسی

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

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
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]
[تعداد بازديد از اين مطلب: 4204]

bt

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




-


گوناگون

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


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