DastanGou Free Tools
Boost Your Productivity
Access our complete suite of professional tools to analyze, optimize and enhance your digital experience
Word Counter
Count words, characters, sentences, and paragraphs in your text. Perfect for writers, students, and content creators.
Words: 0
Characters: 0
Characters (no spaces): 0
Sentences: 0
Paragraphs: 0
Reading Time: 0 minutes
Percentage Calculator
Calculate percentages easily. Find what percentage one number is of another or calculate percentage increase/decrease.
Age Calculator
Calculate your exact age in years, months, and days. Perfect for birthday planning and milestone tracking.
Password Generator
Generate strong, secure passwords with customizable length and character types. Keep your accounts safe!
Unit Converter
Convert between different units of length, weight, temperature, and more. Fast and accurate conversions.
Centimeters
Meters
Kilometers
Inches
Feet
Miles
Centimeters
Meters
Kilometers
Inches
Feet
Miles
BMI Calculator
Calculate your Body Mass Index and understand your weight category. Get health recommendations.
// Theme switching functionality
document.querySelectorAll(‘.theme-color’).forEach(color => {
color.addEventListener(‘click’, function() {
const theme = this.getAttribute(‘data-theme’);
document.body.className = theme;
});
});
// Password length slider
const passwordLength = document.getElementById(‘passwordLength’);
const lengthValue = document.getElementById(‘lengthValue’);
passwordLength.addEventListener(‘input’, function() {
lengthValue.textContent = this.value;
});
// BMI system toggle
document.querySelectorAll(‘input[name=”bmiSystem”]’).forEach(radio => {
radio.addEventListener(‘change’, function() {
if (this.value === ‘metric’) {
document.getElementById(‘metricInputs’).style.display = ‘block’;
document.getElementById(‘imperialInputs’).style.display = ‘none’;
} else {
document.getElementById(‘metricInputs’).style.display = ‘none’;
document.getElementById(‘imperialInputs’).style.display = ‘block’;
}
});
});
// Set current date as default for age calculator
document.getElementById(‘currentDate’).valueAsDate = new Date();
// Tool Functions
// Word Counter
function countWords() {
const text = document.getElementById(‘wordCounterText’).value;
const words = text.trim() ? text.trim().split(/s+/).length : 0;
const characters = text.length;
const charactersNoSpaces = text.replace(/s/g, ”).length;
const sentences = text.split(/[.!?]+/).filter(s => s.length > 0).length;
const paragraphs = text.split(/ns*n/).filter(p => p.trim().length > 0).length;
const readingTime = Math.ceil(words / 200);
document.getElementById(‘wordCount’).textContent = words;
document.getElementById(‘charCount’).textContent = characters;
document.getElementById(‘charCountNoSpaces’).textContent = charactersNoSpaces;
document.getElementById(‘sentenceCount’).textContent = sentences;
document.getElementById(‘paragraphCount’).textContent = paragraphs;
document.getElementById(‘readingTime’).textContent = `${readingTime} minute${readingTime !== 1 ? ‘s’ : ”}`;
document.getElementById(‘wordCounterResults’).classList.add(‘show’);
}
// Percentage Calculator
function calculatePercentage() {
const value = parseFloat(document.getElementById(‘percentageValue’).value);
const total = parseFloat(document.getElementById(‘percentageTotal’).value);
if (isNaN(value) || isNaN(total) || total === 0) {
alert(‘Please enter valid numbers’);
return;
}
const percentage = (value / total) * 100;
document.getElementById(‘percentageResult’).textContent = `${percentage.toFixed(2)}%`;
document.getElementById(‘percentageExplanation’).textContent =
`${value} is ${percentage.toFixed(2)}% of ${total}`;
document.getElementById(‘percentageResults’).classList.add(‘show’);
}
// Age Calculator
function calculateAge() {
const birthDate = new Date(document.getElementById(‘birthDate’).value);
const currentDate = document.getElementById(‘currentDate’).value ?
new Date(document.getElementById(‘currentDate’).value) : new Date();
if (isNaN(birthDate.getTime())) {
alert(‘Please enter a valid birth date’);
return;
}
let years = currentDate.getFullYear() – birthDate.getFullYear();
let months = currentDate.getMonth() – birthDate.getMonth();
let days = currentDate.getDate() – birthDate.getDate();
if (days < 0) {
months–;
const prevMonth = new Date(currentDate.getFullYear(), currentDate.getMonth(), 0);
days += prevMonth.getDate();
}
if (months < 0) {
years–;
months += 12;
}
const totalDays = Math.floor((currentDate – birthDate) / (1000 * 60 * 60 * 24));
document.getElementById('ageResult').textContent = `${years} years, ${months} months, ${days} days`;
document.getElementById('ageDetails').textContent =
`Total days: ${totalDays.toLocaleString()} | Total months: ${(years * 12 + months).toLocaleString()}`;
document.getElementById('ageResults').classList.add('show');
}
// Password Generator
function generatePassword() {
const length = parseInt(document.getElementById('passwordLength').value);
const includeUppercase = document.getElementById('includeUppercase').checked;
const includeNumbers = document.getElementById('includeNumbers').checked;
const includeSymbols = document.getElementById('includeSymbols').checked;
const lowercase = 'abcdefghijklmnopqrstuvwxyz';
const uppercase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
const numbers = '0123456789';
const symbols = '!@#$%^&*()_+-=[]{}|;:,.?’;
let chars = lowercase;
if (includeUppercase) chars += uppercase;
if (includeNumbers) chars += numbers;
if (includeSymbols) chars += symbols;
let password = ”;
for (let i = 0; i = 12 && includeUppercase && includeNumbers && includeSymbols) {
strength = ‘Very Strong’;
} else if (length >= 10 && includeUppercase && includeNumbers) {
strength = ‘Strong’;
} else if (length >= 8 && (includeUppercase || includeNumbers)) {
strength = ‘Medium’;
}
document.getElementById(‘passwordResult’).textContent = password;
document.getElementById(‘passwordStrength’).textContent = `Password Strength: ${strength}`;
document.getElementById(‘passwordResults’).classList.add(‘show’);
}
function copyPassword() {
const password = document.getElementById(‘passwordResult’).textContent;
navigator.clipboard.writeText(password).then(() => {
alert(‘Password copied to clipboard!’);
});
}
// Unit Converter
function convertUnits() {
const value = parseFloat(document.getElementById(‘unitValue’).value);
const from = document.getElementById(‘unitFrom’).value;
const to = document.getElementById(‘unitTo’).value;
if (isNaN(value)) {
alert(‘Please enter a valid number’);
return;
}
// Conversion factors to meters
const factors = {
cm: 0.01,
m: 1,
km: 1000,
inch: 0.0254,
ft: 0.3048,
mi: 1609.34
};
const result = (value * factors[from]) / factors[to];
document.getElementById(‘unitResult’).textContent = `${result.toFixed(4)} ${to}`;
document.getElementById(‘unitExplanation’).textContent =
`${value} ${from} = ${result.toFixed(4)} ${to}`;
document.getElementById(‘unitResults’).classList.add(‘show’);
}
// BMI Calculator
function calculateBMI() {
const system = document.querySelector(‘input[name=”bmiSystem”]:checked’).value;
let weight, height, bmi;
if (system === ‘metric’) {
weight = parseFloat(document.getElementById(‘metricWeight’).value);
height = parseFloat(document.getElementById(‘metricHeight’).value) / 100; // Convert cm to m
bmi = weight / (height * height);
} else {
weight = parseFloat(document.getElementById(‘imperialWeight’).value);
const feet = parseFloat(document.getElementById(‘imperialHeightFt’).value);
const inches = parseFloat(document.getElementById(‘imperialHeightIn’).value);
height = (feet * 12) + inches; // Convert to total inches
bmi = (weight / (height * height)) * 703;
}
if (isNaN(weight) || isNaN(height) || height === 0) {
alert(‘Please enter valid measurements’);
return;
}
let category, recommendation;
if (bmi < 18.5) {
category = 'Underweight';
recommendation = 'Consider consulting a healthcare provider for weight gain advice.';
} else if (bmi < 25) {
category = 'Normal weight';
recommendation = 'Maintain your current weight with a balanced diet and regular exercise.';
} else if (bmi < 30) {
category = 'Overweight';
recommendation = 'Consider moderate weight loss through diet and exercise.';
} else {
category = 'Obese';
recommendation = 'Consult a healthcare provider for weight management advice.';
}
document.getElementById('bmiValue').textContent = bmi.toFixed(1);
document.getElementById('bmiCategory').textContent = `Category: ${category}`;
document.getElementById('bmiRecommendation').textContent = recommendation;
document.getElementById('bmiResults').classList.add('show');
}
