From 655cc663e2e09c60bd6a8254e43871095b1dce28 Mon Sep 17 00:00:00 2001 From: Mani Jalilzadeh <69599374+wayofmani@users.noreply.github.com> Date: Thu, 30 May 2024 12:13:47 +0330 Subject: [PATCH] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit رید می پلیز براتان --- README.md | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 50 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index e0df448..7a83e28 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # تبدیل تایم پلی دوتا ۲ برای اینکه بفهمید چند روز و چند ماه و چند سال از زندگی‌تون رو پشت کامپیوتر بودین و توی دوتا داشتین فشار می‌خوردین :) -> [!TIP] -> Live preview: https://bettercallus.github.io/Dota2-playtime/templates +> [!IMPORTANT] +> ➡️ Live preview: https://bettercallus.github.io/Dota2-playtime/templates ## **در ادامه... ** - [چطوری بفهمم چقدر دوتا ۲ بازی کردم؟](https://bettercallus.github.io/Dota2-playtime/templates/how-to-find-dota2-playtime.html) - [چطوری دوتا ۲ رو حذف بکنم ؟ ](https://bettercallus.github.io/Dota2-playtime/templates/how-to-uninstall-dota-2.html) @@ -13,7 +13,8 @@ ## چطوری کار میکنه؟ یه فرمول خیلی ساده داره ساعت رو میگیره و تبدیلش میکنه. -1. قبل شروع باید مقدار ساعت بازی شده رو از صفحه اول بگیرید و بریزید توی $total_hours راه های زیادی هست ولی من از javascript و متد Get استفاده کردم چون هست شده بود روی گیت هاب نمی‌شد با متد پست این کارو کرد. + +1. قبل شروع باید مقدار ساعت بازی شده رو از صفحه اول بگیرید و بریزید توی $total_hours راه های زیادی هست ولی من از javascript و متد Get استفاده کردم چون هست شده بود روی گیت هاب نمی‌شد با متد پست این کارو کرد. ```javascript // Submit Button const form = document.getElementById('submitData'); @@ -28,6 +29,52 @@ form.addEventListener('submit', (e) => { window.location.href = url.toString(); }); ``` +2. یه فایل جدید بسازید یا توی صفحه دوم اسکریپتشو بنویسید. باید مقدار های ورودی رو از صفحه قبلی دریافت بکنید که روش های زیادی داره ولی من این کارو کردم. +```javascript + const urlParams = new URLSearchParams(window.location.search); + let total_hours = urlParams.get('total_hours'); // Get your Input Value +``` +3. بعدش این متغییر ها رو تعریف باید بکنید. + 1.بیاید محاسبه رو ساده تر بکنیم، اول مقدار ساعت رو تبدیلش میکنیم به روز که ساده تر بشه محاسبات. + 2.ماه و سال رو ۰ قرار می‌دیم و یه متغییر به اسم reaminingDays تعریف میکنیم و برابر با days میزاریمش. حالا راه های زیادی هست برای حساب کردنش ولی من اینطوری رفتم جلو که اول سال رو بدست بیارم بعد ماه رو بعد روز خودش به دست میاد و تقریبا درست ترین روشه. +```javascript + var + days = total_hours / 24, // Convert Total Hours to Days + months = 0, + years = 0, + remainingDays = days, + resultElement = document.getElementById('Result') // The place you want to show your text It's a H1 tag in my code +``` +4.به دست اوردن سال اینطوریه که از یه حلقه While استفاده می‌کنم و میگم تعداد روز ها (که همون ساعت ها بودن که تبدیل به روز شدن) اگه بیشتر یا مساوی بود با 365 این حلقه رو ادامه بده و هر بار که ادامه میدی یدونه به مقدار متغیر years که ۰ بود اضافه کن و ۳۶۵ تا از remainingDays کم بکن. +```javascript +// Years +while(remainingDays >= 365) +{ + years++ + remainingDays -= 365 +} +``` +5. برای به دست آوردن ماه هم همون روش بالاس ولی اینبار به ماه اضافه می‌کنه و هر بار که تعداد روز های باقی مونده reaminingDays بیشتر از ۳۰ بود به months یدونه اضافه میکنه و ۳۰ تا از reamingDays کم می‌کنه. +```javascript +// Months +while (remainingDays >= 30) { + months++; + remainingDays -= 30; +} +``` +6. روز هم خودش به دست اومده الان. اینقدر از روز کم کردیم که الان دیگه خودش به دست اومده و توی reamingDays می‌تونید تعداد روز هایی که بازی کرده رو داشته باشیم (روز هایی که از ماه و سالش باقی مونده و بیشتر از ۳۰ هم نمیشه.) +7. برای نمایشش توی HTML هم باز راه زیاد دارید ولی من اینطوری رفتم جلو و چندتا نکته داره مثلا وقتی سال ۰ هست نباید بگه ۰ کلا نباید نشونش بده و اگه ماه ۰ هست فقط باید روز و سال رو نشون بده. که تمیز تر باشه همین. و البته از Math.Floor هم استفاده کردم که اعشار رو پاک بکنم. +```javascript +if(years==0) // only month and days + resultElement.innerHTML = `${Math.floor(months)} ماه و ${Math.floor(remainingDays)} روز`; + else if(years==0 && months==0) // only days + resultElement.innerHTML = `${Math.floor(remainingDays)} روز`; + else if(remainingDays==0) // no days + resultElement.innerHTML = `${Math.floor(years)} سال و ${Math.floor(months)} ماه`; + else // general form: year month and day + resultElement.innerHTML = `${Math.floor(years)} سال و ${Math.floor(months)} ماه و ${Math.floor(remainingDays)} روز`; +``` +8. همین و تمام دمتون گرم یه ستاره بدید دلمون خوش بشه :) ## نسخه فعلی