اطلاعیه

Collapse
No announcement yet.

تعداد روزهای بین دو تاریخ

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

    تعداد روزهای بین دو تاریخ

    سلام دوستان عزیز تو یه پروژه احتیاج دارم که بین دو تاریخ شمسی یا میلادی تعداد روزها رو محاسبه کنم ولی هر چی تو نت گشتم دیدم این بچه های کامپیوتر از یه سری توابع اماده کامپایلر های خودشون استفاده می کنند
    از دوستان کسی الگوریتم نداره که با اون بتونم تابعشو بنویسم
    من به آمار زمین مشکوکم...
    اگر این شهر پر از آدم هاست......
    پس چرا این همه دل ها تنهاست؟

    #2
    پاسخ : تعداد روزهای بین دو تاریخ

    می دونی چطوری سال رو به روز تبدیل کنی ؟
    مثلا 1378/05/06 رو بصورت تقریبی با در نظر گرفتن سال های کبیسه میشه 06 + 4*31 + 1377 * 365.25 روز و به همین صورت تایخ دومت رو تبدیل کن مثلا 1391/09/03 میشه
    3+2* 30+ 186 + 386.25*1390 حالا این دور از هم کم کن
    تنها موردي كه همه آدما يقين دارن خدا در حقش زیاد لطف کرده
    داشتن عقله زيادتر از دیگر آدم ها است

    دیدگاه


      #3
      پاسخ : تعداد روزهای بین دو تاریخ

      راه حلش همینه که جناب aliila گفتن ولی اگه بخوای دقیق تر حساب کنی تعداد روزهایی که تا آخر یک ماه از سال گذشته توی یک آرایه بذار مثل این (برای تاریخ جلالی)
      daysofyear = [0, 31, 62, 93, 124, 155, 186, 216, 246, 276, 306, 336]

      و سالهای کبیسه هم این طوری حساب کن:
      سال 1391 کبیسه است و سالهای کبیسه هر 4 سال یک بار اتفاق می افتند پس کلیه سالهایی که باقی مانده آنها بر 4 مساوی 3 است هم کبیسه هستند. بنابراین تعداد سالهای کبیسه تا سالی که وارد شده این طوری حساب میشه که اول آخرین سال کبیسه قبل از سال وارد شده رو به دست میاری، اگه باقی مانده سال بر 4 شد 3، که میشه y-4 (که y همون سال وارد شده هست) وگرنه میشه (y-rem(y-3,4 فرض کن اسم این مقدار رو L بذاریم در این صورت تعداد سالهای کبیسه قبل از y میشه L+1)/4) که باید این مقدار به تعداد روزها اضافه بشه فرمولش میشه این:
      با فرض این که تاریخ وارد شده باشه y/m/d که d روز، m ماه و y سال باشه:
      کد PHP:
      if rem(y,4) = 3
        L 
      4;
      else
        
      rem(y-3,4);
      end
      days 
      365*daysofyear(m) + + (L+1)/

      برای هر دو تاریخ حساب کن و بعد از هم کم کن.
      لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
      لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
      با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
      اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
      يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"

      دیدگاه

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