Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
رید می پلیز براتان
  • Loading branch information
wayofmani authored May 30, 2024
1 parent 279deaf commit 655cc66
Showing 1 changed file with 50 additions and 3 deletions.
53 changes: 50 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -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)
Expand All @@ -13,7 +13,8 @@

## چطوری کار میکنه؟
یه فرمول خیلی ساده داره ساعت رو میگیره و تبدیلش میکنه.
1. قبل شروع باید مقدار ساعت بازی شده رو از صفحه اول بگیرید و بریزید توی $total_hours راه های زیادی هست ولی من از javascript و متد Get استفاده کردم چون هست شده بود روی گیت هاب نمی‌شد با متد پست این کارو کرد.

1. قبل شروع باید مقدار ساعت بازی شده رو از صفحه اول بگیرید و بریزید توی $total_hours راه های زیادی هست ولی من از javascript و متد Get استفاده کردم چون هست شده بود روی گیت هاب نمی‌شد با متد پست این کارو کرد.
```javascript
// Submit Button
const form = document.getElementById('submitData');
Expand All @@ -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. همین و تمام دمتون گرم یه ستاره بدید دلمون خوش بشه :)


## نسخه فعلی
Expand Down

0 comments on commit 655cc66

Please sign in to comment.