Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Persian
  4. تقویم جلالی در کیوت ۴٫۹
Qt 6.11 is out! See what's new in the release blog

تقویم جلالی در کیوت ۴٫۹

Scheduled Pinned Locked Moved Persian
17 Posts 6 Posters 21.4k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    soroush
    wrote on last edited by
    #1

    p{direction:rtl; text-align:right}. سلام
    نسخهٔ دوم ترجمه با اعمال اصلاحات فرهنگستان، آماده شده و در کیوت ۴٫۹ منتشر خواهد شد.
    ترجمه و انتخاب واژه‌ها کار خیلی سخت و طاقت‌فرسایی بود. سعی شده که کلمات آشنا به‌کار برده بشه و بعد از ساعت‌ها بحث و گفتگو چندین مورد رو اصلاح کردیم که امیدوارم درست بوده باشه.

    p{direction:rtl; text-align:right}. همون‌طور که می‌دونید به دلیل مشکلات زیاد و وقت کم نتونستیم تقویم جلالی رو برای کیوت ۴٫۸ آماده کنیم.
    قصد داریم هر طور شده تقویم جلالی رو برای نسخهٔ ۴٫۹ برسونیم. طی صحبت‌هایی که با برخی از دوستان داشتم درنظر دارم هر دو الگوریتم دقیق و نادقیق رو پیاده‌سازی کنم. (الگوریتم ۳۳ ساله برای کاربردهای عادی و الگوریتم دقیق برای کاربردهای علمی) با وجود این که پیاده‌سازی بهینهٔ این الگوریتم‌ها کار چندان سختی نیست، برای این کار به یونیت‌تست‌ها و کد پترن‌های خیلی پردردسر (برای قبول شدن کد در ساختار کیوت) نیاز داریم. برای همین کمک و حمایت جامعهٔ فارسی کیوت خیلی اهمیت داره.

    p{direction:rtl; text-align:right}. کار برنامه‌نویسی الگوریتم‌ها و تنظیم یونیت‌ها روز ۲۰ام دی‌ماه امسال کلید می‌خوره. عزیزانی که مایل به همکاری هستند همین‌جا اعلام کنن. همچنین اگر نظری در مورد مسائل ویژهٔ زبان فارسی در کیوت دارید مطرح کنید تا درصورت امکان در ۴٫۹ پیاده‌سازی و یا اصلاح بشه.

    با تشکر

    1 Reply Last reply
    0
    • S Offline
      S Offline
      shs_night
      wrote on last edited by
      #2

      p{direction:rtl; text-align:right}. شما کارمند نوکیا هستید ؟
      اگر نیستید , نحوه همکاری شما با نوکیا در توسعه تقویم جلالی به چه صورت است

      QtSDK 1.2 + MinGW + Desktop !

      1 Reply Last reply
      0
      • S Offline
        S Offline
        soroush
        wrote on last edited by
        #3

        p{direction:rtl; text-align:right}. نه بابا ! چه کارمندی؟ توسعهٔ کیوت رو Community انجام میده. شما می‌تونید توی سایت gitorious عضو بشید و کد خودتون رو بنویسید. بعد یک درخواست می‌فرستید و توسط توسعه‌دهنده‌های حرفه‌ای بررسی میشه. در صورتی که قبول بشه توی کد اصلی کیوت قرار داده مبشه با توزیع بعدی کیوت منتشر میشه. همین! البته معیارهای خیلی سفت و سختی برای پذیرفته شدن کد در کیوت هست. مثلا برای ترجمه زیاد سخت‌گیر نیستن اما اگر بخوای کد تقویم بنویسی اولا باید سبک کدنویسی و اشتقاق‌های کیوت رو رعایت کنی، ثانیاً کد باید بهینه باشه، همچنین MetaObject ها و. Test Unit ها هم باید کامل باشند.... دردسر خیلی زیادی داره. تا الان که بیشتر از ۲۰ تا ایراد گرفتن به کد من :-/

        1 Reply Last reply
        0
        • S Offline
          S Offline
          shs_night
          wrote on last edited by
          #4

          p{direction:rtl; text-align:right}. از توضیحات شفافتان سپاسگزارم

          QtSDK 1.2 + MinGW + Desktop !

          1 Reply Last reply
          0
          • V Offline
            V Offline
            vahid
            wrote on last edited by
            #5

            سلام

            1 Reply Last reply
            0
            • S Offline
              S Offline
              soroush
              wrote on last edited by
              #6

              [quote author="vahid" date="1341182771"]سلام
              یوزر گیتوریوس من اینه
              kharazi

              [/quote]

              p{direction:rtl; text-align:right}. علیک سلام
              دیر موندی تعطیل شد :P

              "Iranian people ":http://qt-project.org/forums/viewthread/14206/

              1 Reply Last reply
              0
              • V Offline
                V Offline
                vahid
                wrote on last edited by
                #7

                :D

                1 Reply Last reply
                0
                • R Offline
                  R Offline
                  Ramin7000
                  wrote on last edited by
                  #8

                  @
                  QString JalaliCalendar::jDate()
                  {
                  QDate Today;
                  QDate chkFirst,chkSecound;
                  Today = QDate::currentDate();
                  chkFirst.setDate(Today.year(),2,1);
                  chkSecound.setDate(Today.year(),3,1);
                  int IsKabisah = (chkFirst.daysTo(chkSecound))==29 ? 1 : 0 ;
                  QString jsYear,jsMonth,jsDay;
                  int jYear,jMonth,jDay;
                  QString space=" / ";

                  if(Today > QDate(Today.year(),3,20-IsKabisah) && Today <=QDate(Today.year(),4,20-IsKabisah)) {
                      jYear = Today.year()-621; jMonth =1;jDay=Today.daysTo(QDate(Today.year(),3,20-IsKabisah));} //فروردین
                  if(Today > QDate(Today.year(),4,20-IsKabisah) && Today <=QDate(Today.year(),5,21-IsKabisah)) {
                      jYear = Today.year()-621; jMonth =2;jDay=Today.daysTo(QDate(Today.year(),4,20-IsKabisah));} //اردیبهشت
                  if(Today > QDate(Today.year(),5,21-IsKabisah) && Today <=QDate(Today.year(),6,21-IsKabisah)) {
                      jYear = Today.year()-621; jMonth =3;jDay=Today.daysTo(QDate(Today.year(),5,21-IsKabisah));} //خرداد
                  
                  if(Today > QDate(Today.year(),6,21-IsKabisah) && Today <=QDate(Today.year(),7,22-IsKabisah)) {
                      jYear = Today.year()-621; jMonth =4;jDay=Today.daysTo(QDate(Today.year(),6,21-IsKabisah));} //تیر
                  if(Today > QDate(Today.year(),7,22-IsKabisah) && Today <=QDate(Today.year(),8,22-IsKabisah)) {
                      jYear = Today.year()-621; jMonth =5;jDay=Today.daysTo(QDate(Today.year(),7,22-IsKabisah));} //مرداد
                  if(Today > QDate(Today.year(),8,22-IsKabisah) && Today <=QDate(Today.year(),9,23-IsKabisah)) {
                      jYear = Today.year()-621; jMonth =6;jDay=Today.daysTo(QDate(Today.year(),8,22-IsKabisah));} //شهریور
                  
                  if(Today > QDate(Today.year(),9,22-IsKabisah) && Today <=QDate(Today.year(),10,22-IsKabisah)) {
                      jYear = Today.year()-621; jMonth =7;jDay=Today.daysTo(QDate(Today.year(),9,22-IsKabisah));} //مهر
                  if(Today > QDate(Today.year(),10,22-IsKabisah) && Today <=QDate(Today.year(),11,21-IsKabisah)) {
                      jYear = Today.year()-621; jMonth =8;jDay=Today.daysTo(QDate(Today.year(),10,22-IsKabisah));} //آبان
                  if(Today > QDate(Today.year(),11,21-IsKabisah) && Today <=QDate(Today.year(),12,21-IsKabisah)) {
                      jYear = Today.year()-621; jMonth =9;jDay=Today.daysTo(QDate(Today.year(),11,21-IsKabisah));} //آذر
                  
                  if(Today > QDate(Today.year(),12,21-IsKabisah) && Today <=QDate(Today.year(),1,20-IsKabisah)) {
                      jYear = Today.year()-621; jMonth =10;jDay=Today.daysTo(QDate(Today.year(),12,21-IsKabisah));} //دی
                  if(Today > QDate(Today.year(),1,20-IsKabisah) && Today <=QDate(Today.year(),2,19-IsKabisah)) {
                      jYear = Today.year()-(Today.day()>11+IsKabisah)?622:621; jMonth =11;jDay=Today.daysTo(QDate(Today.year(),1,20-IsKabisah));} //بهمن
                  if(Today > QDate(Today.year(),2,19-IsKabisah) && Today <=QDate(Today.year(),4,20-IsKabisah)) {
                      jYear = Today.year()-622; jMonth =12;jDay=Today.daysTo(QDate(Today.year(),2,19-IsKabisah));} //اسفند
                  
                  jsYear = QString::number(jYear);
                  jsMonth = QString::number(jMonth);
                  jsDay = QString::number(-jDay);
                  
                  return jsYear +space+ jsMonth +space+ jsDay;
                  

                  }
                  @

                  Ramin Lohrasbi

                  1 Reply Last reply
                  0
                  • R Offline
                    R Offline
                    Ramin7000
                    wrote on last edited by
                    #9

                    :)

                    Ramin Lohrasbi

                    1 Reply Last reply
                    0
                    • M Offline
                      M Offline
                      mohsen
                      wrote on last edited by
                      #10

                      p{direction:rtl;text-align:right}. این دیگه چجور الگوریتمیه!

                      1 Reply Last reply
                      0
                      • R Offline
                        R Offline
                        Ramin7000
                        wrote on last edited by
                        #11

                        کاملا" وابسته به تاریخ میلادی سیستم هستش
                        اول چک می کنیم که سال کبیسه هست یا نه
                        بعد بر اساس این تشخیص ماه های سال مشخص می شن
                        خیلی ساده و راحت
                        فقط باید تاریخ خود سیستم درست ست شده باشه
                        آلگوریتمشو خودم نوشتم
                        و تستش کردم اگر اشتباهی مشاهده کردید لطفا" بهم اطلاع بدید
                        توی تستی که کردم خطا نداشت

                        Ramin Lohrasbi

                        1 Reply Last reply
                        0
                        • M Offline
                          M Offline
                          mohsen
                          wrote on last edited by
                          #12

                          p{direction:rtl; text-align:right}. ببخشید ولی اصلا جالب نیست. البته نظر شخصیه منه. 12 بار مقایسه تاریخ، بارگذاری اینهمه آبجکت و استفاده از فانکشن های محاسباتی زیاد فقط برای تبدیل تاریخ! سال های کبیسه با فرمول قابل تشخیص هستند و نیازی به اینکار نیست. به نظرم کمی در مورد الگوریتم های تبدیل تاریخ مطالعه کنید و یک فانکشن تمیز، منطقی و با سرعت بنویسید.

                          1 Reply Last reply
                          0
                          • R Offline
                            R Offline
                            Ramin7000
                            wrote on last edited by
                            #13

                            ممنون از راهنماییتون . البته می تونستم ساده ترش کنم . فقط بخاطر اینکه گویا باشه اینکارو نکردم . ولی فکر می کنم این سرعتش از بقیه الگوریتم ها بیشتر باشه . چون فقط تو بازه مقایسه ای قرار می گیره. قبول دارم که تکنیکی نیست . اما دلیلی ندیدم که بخوام تاریخی رو محاسبه کنم که پایه اون همون تاریخ میلادی هستش که سیستم رو خودش داره. چون به هر حال همه می دونیم اساسا" تاریخ شمسی روی سیستم ها پایه گذاری نشده.
                            البته دو سه تا آبجکت بیشتر نیست و فکر نمی کنم زیاد باشه :)
                            موفق باشید

                            Ramin Lohrasbi

                            1 Reply Last reply
                            0
                            • S Offline
                              S Offline
                              soroush
                              wrote on last edited by
                              #14

                              p{direction:rtl; text-align:right}. این الگوریتم غلطه. خیلی چیزها درنظر گرفته نشده. مثلاً این که هر سی و سه سال یک بار سال کبیسه نداریم. و این که هر صد و بیست و هفت سال یک‌بار دو سال کبیسهٔ پشت سر هم داریم. همچنین تداخل این نوع محاسبات با سال‌های کبیسهٔ میلادی و روزهای گمشدهٔ گریگوری درنظر گرفته نشده.

                              p{direction:rtl; text-align:right}. ساده بگم، این الگوریتم برای قبل از سال ۷۵ شمسی و بعد از سال ۲۰۱۷ میلادی یکی دو روز جابجایی خواهد داشت.

                              1 Reply Last reply
                              0
                              • R Offline
                                R Offline
                                Ramin7000
                                wrote on last edited by
                                #15

                                سروش عزیز سلام
                                این الگوریتم کاملا" به تاریخ تنظیم شده سیستم وابسته هستش!
                                اگر توی سیستم کبیسه تعریف نشده باشه این الگوریتم هم از خودش تعریفی نخواهد داشت.
                                به نظرم خیلی توجه نکردید.
                                ممنون از نظرتون

                                Ramin Lohrasbi

                                1 Reply Last reply
                                0
                                • S Offline
                                  S Offline
                                  soroush
                                  wrote on last edited by
                                  #16

                                  [quote author="Ramin7000" date="1354184526"]سروش عزیز سلام
                                  این الگوریتم کاملا" به تاریخ تنظیم شده سیستم وابسته هستش!
                                  اگر توی سیستم کبیسه تعریف نشده باشه این الگوریتم هم از خودش تعریفی نخواهد داشت.
                                  به نظرم خیلی توجه نکردید.
                                  ممنون از نظرتون[/quote]

                                  p{direction:rtl; text-align:right}. مسأله اینه که توی تاریخ سیستم کبیسه‌ها درنظر گرفته شدن. اگه می‌خوای یه الگوریتم خوب بنویسی یه همچین کدی نیاز داری:

                                  @
                                  bool QJalaliDate::isLeapYear(const int& year)
                                  {
                                  int a = (year + 2345) % 2820;
                                  if(a == 2819)
                                  return true;
                                  else
                                  {
                                  int b = a8;
                                  int c;
                                  if(b < 29)
                                  c = b;
                                  else
                                  c = (b-29) % 33;
                                  if(c==0)
                                  return false;
                                  else if(c%4 == 0)
                                  return true;
                                  else
                                  return false;
                                  }
                                  }
                                  @

                                  1 Reply Last reply
                                  0
                                  • M Offline
                                    M Offline
                                    m_pahlevanzadeh
                                    wrote on last edited by
                                    #17

                                    تا اونجا که یادمه تقویم هایی که وابسته به میلادی هستند همیشه یه جایی سوتی میدن. خیام طبق یه الگوریتم اومده در مورد تقویم جلالی یه حرف‌هایی زده که هر ۱۸۲۰ سال تغییر ناپذیره و این حرف‌ها. یه دوست ایرانی که هنوز هم ایرانه چنین کدی رو سال‌هاست نوشته:
                                    http://savannah.nongnu.org/projects/jcal/
                                    همون دستور cal لینوکسه

                                    1 Reply Last reply
                                    0

                                    • Login

                                    • Login or register to search.
                                    • First post
                                      Last post
                                    0
                                    • Categories
                                    • Recent
                                    • Tags
                                    • Popular
                                    • Users
                                    • Groups
                                    • Search
                                    • Get Qt Extensions
                                    • Unsolved