یک تابع در JavaScript بنویسید که یک رشته تاریخ به فرمت 'YYYY-MM-DD' بگیرد و تعداد روزهای باقیمانده تا پایان همان سال را برگرداند.
1.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 01:46 0.0
برای حل، رشته را با جداکننده '-' تقسیم کنید و با new Date(year, month-1, day) یک شیء Date بسازید، سپس یک Date برای 31 دسامبر همان سال بسازید. زمان هر دو را با setHours(0,0,0,0) به نیمهشب تنظیم کنید تا مشکل منطقه زمانی پیش نیاید، اختلاف میلیثانیهها را محاسبه و بر 1000*60*60*24 تقسیم کنید تا تعداد روزها بهدست آید؛ از Math.ceil یا Math.round برای گرفتن عدد صحیح استفاده کنید. این روش با سالهای کبیسه هم درست کار میکند و نیازی به کتابخانه اضافی نیست.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
این روش با تقسیم تاریخ ورودی به سال، ماه و روز کار میکند و با ساخت دو شی Date، اختلاف میلیثانیهای تا پایان سال را به دست میآورد. استفاده از setHours(0,0,0,0) برای هر دو تاریخ باعث میشود تفاوتهای منطقه زمانی یا DST تاثیری نداشته باشند. با تقسیم بر ms در روز (1000*60*60*24) نتیجه به دست میآید و میتوانید از Math.ceil یا Math.round استفاده کنید تا عدد صحیح به دست آید. توجه داشته باشید که سال کبیسه به درستی محاسبه میشود و بدون کتابخانه اضافی هم کار میکند؛ اگر ورودی تاریخ درست نبود میتوانید اعتبارسنجی سادهای اضافه کنید.
گزارش