اطلاعیه

Collapse
No announcement yet.

الگوریتم تشخیص روز هفته از تاریخ شمسی ؟

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    الگوریتم تشخیص روز هفته از تاریخ شمسی ؟

    سلام دوستان عزیز تو یه برنامه احتیاج دارم ، زمانی که تاریخ رو از کاربر میگیرم بتونم تشخیص بدم که اون تاریخ چند شنبه میشه !
    میخواستم بپرسم
    1- کسی الگوریتمشو میدونه ؟
    و
    2- اینکه اگه برنامه ای به زبان بیسیک در این باره سراغ دارید بهم معرفی کنید
    ممنون
    :applause:
    امير مسعود مقدم

    #2
    پاسخ : الگوریتم تشخیص روز هفته از تاریخ شمسی ؟

    سلام برای این کار لازمه
    ابتدا یه دیفاین اول برنامتون اضافه میکنین:
    شنبه = 1
    یک شنبه=2
    .....
    جمعه = 7
    سپس بایدیه نقطه مرجع داشته باشید
    مثلا اول مهر شنبه باشه
    حالا دو حالت دارید:
    1- تاریخ مورد نظر تو همین ماهه
    2-تاریخ مورد نظر تو یه ماه دیگشت

    اینطوری باید باقیماند تقسیم بر هفت ( عبارت % در سی ) رو بدست بیارید و با توجه به عدد بدست اومده برابر تاریخ بزارین:
    مثلا شما 26 مهر رو میخواین ببینین چن شنبست:
    باقیمانده 26 بر هفت برابر 5 میباشه که با فرض این که اول مهر برابر شنبه باشه ،شما تو هفته سوم مهر ماه و روز چهارشنبه هستین
    در صورتی هم که تو یه ماه دیگه باشین باید طبق روش بالا ابتدا یه نقطه مرجع تو اون ماه مثلا اول اون ماه بدس بیارین و بعدش همین کارو تکرار کنین.(به 30 و 31 روزه بودن ماهها دقت کنین )
    ( برای راحتی میتونین 12 نقطه مرجع که 12 روز ابتدای هر ماهه رو انتخاب کنین
    زندگي آن چه که زيسته ايم نيست ، بلکه آن چيزي است که از گذشته به خاطر داريم ...گابريل گارسيا مارکز

    دیدگاه


      #3
      پاسخ : الگوریتم تشخیص روز هفته از تاریخ شمسی ؟

      سلام دوباره واضح تر توضیح میدم
      در واقع کاری که شما میخواین انجام بدین یه عمل خیلی ساده ی ریاضیه (چیزی که تو درس سیگنالها و سیستم ها -سیگنالهای متناوب خیلی دیدیم ) .
      ببینین شما یه سیگنال تکرار شونده دارین (روزهای هفته ) که میخواین اینو به یه حوزه ی دیگه تبدیل کنین(تاریخ ).
      شما برای این که بتونین هر تاریخی رو به حوزه ی تاریخ ببرین به دو تا داده نیاز دارین ، یک تاریخ روزی که میخواین چن شنبه بودنش رو بدونین و دو یه نقطه مرجع که مقدارش تو هر دو تا حوزه معلوم باشه .بیاین برنامه نویسی رو بزاریم کنار و یه مثال عملی بزنیم:

      شما ابتدا باید به میکرو روزهای هفته رو بفهمونی که برا این کار اول برنامه یه دیفاین اضافه میکنی (معادل بسکامش رو نمیدونم ) و هر روز هفته رو برابر یه عدد میذاری
      کد:
      #define sat 0
      #define sun 1
      #define mon 2
      ...
      بعد میای نقطه اولیه تو به میکرو میفهمونی:
      کد:
      #define 1_tir mon
      حالا در صورتی که هر تاریخی از اون ماه رو بخوای از اون جایی که روزها هر هفت روز تکرار میشه پس میتونیم از هفته های کامل صرف نظر کنیم و فقط روزهای باقیمونده رو بشماریم ، مثلا شما 3 تیر رو میخوای:
      کد:
      day=3%7
      یعنی میگی باقیمانده 3 تقسیم بر هفت (نکته : این طوری اثر تکراری بودن هفته ها رو یا متناوب بودنشون رو از بین میبری ) که برابر خود سه هستش
      کد:
      day=day+1_tir-1
      کد بالا میگه باقیمانده تقسیم رو (3 ) بعلاوه نقطه مرجع کن و منهای یک کن (چون نقطه مرجعمون یکه و نه صفر باید تو محاسبات -1 کنیم تا تو مبنای دهدهی جوز در بیاد )
      تو آخر این خط میشه متغیر day برابر 3 منهای یک بعلاوه روز مرجع که دوشنبه است و برابر تعریف عدد دو گرفته که نتیجه میشه 4 ، نتیجه 3 تیر میشه چهار شنبه که اینو با قرار دادن تو یه حلقه کیس میتونی انجام بدی
      ----یه مثال دیگه 23 تیر:
      باقیمانده 23 تقیبم بر 7 برابر 2 هستش ، برای تطبیق مرجع -1 میکنیم میشه 1 بعلاوه نقطه مرجع یا دوشنبه (عدد 2 ) میکنیم میشه 3 یعنی اگه اول تیر دوشنبه باشه 23 تیر میشه سه شنبه
      احتمال اشتباه محاسباتی در توضیحات بالا هستش ، ولی کلیات همونیه که گفتم
      شاید کمی مبهم باشه ولی با چن بار خوندن و کمی تلاش احتملا متوجه شید اگه این طور نبود بفرمایید تا چن تا مصال دیگه بزنم
      زندگي آن چه که زيسته ايم نيست ، بلکه آن چيزي است که از گذشته به خاطر داريم ...گابريل گارسيا مارکز

      دیدگاه

      لطفا صبر کنید...
      X