Файловый менеджер - Редактировать - /home/gqdcvggs/go.imators.com/calc.tar
Назад
index.html 0000664 00000032007 15114741370 0006550 0 ustar 00 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>BYTE CALCULATOR 95</title> <link href="https://cdnjs.cloudflare.com/ajax/libs/tailwindcss/2.2.19/tailwind.min.css" rel="stylesheet"> <style> /* Windows 95 Theme */ :root { --win95-gray: #c0c0c0; --win95-dark: #808080; --win95-darker: #404040; --win95-light: #ffffff; --win95-blue: #000080; } body { font-family: 'MS Sans Serif', 'Segoe UI', Tahoma, sans-serif; background: teal; background-image: linear-gradient(45deg, rgba(0, 0, 0, .1) 25%, transparent 25%, transparent 75%, rgba(0, 0, 0, .1) 75%), linear-gradient(45deg, rgba(0, 0, 0, .1) 25%, transparent 25%, transparent 75%, rgba(0, 0, 0, .1) 75%); background-size: 40px 40px; background-position: 0 0, 20px 20px; } .win95-window { background: var(--win95-gray); border: 2px solid; border-color: var(--win95-light) var(--win95-darker) var(--win95-darker) var(--win95-light); box-shadow: 1px 1px 0 1px black; } .win95-header { background: var(--win95-blue); color: white; padding: 2px 3px; } .win95-button { background: var(--win95-gray); border: 2px solid; border-color: var(--win95-light) var(--win95-darker) var(--win95-darker) var(--win95-light); position: relative; transition: all 0.1s; } .win95-button:active { border-color: var(--win95-darker) var(--win95-light) var(--win95-light) var(--win95-darker); transform: translate(1px, 1px); } .win95-inset { border: 2px solid; border-color: var(--win95-darker) var(--win95-light) var(--win95-light) var(--win95-darker); background: white; } .calc-button { width: 40px; height: 30px; margin: 2px; font-weight: bold; } .calc-display { font-family: 'Digital', 'Courier New', monospace; text-align: right; padding: 5px; margin-bottom: 10px; font-size: 1.2em; } .tab-active { border-bottom: 2px solid var(--win95-blue); } </style> </head> <body class="min-h-screen p-4"> <div class="max-w-lg mx-auto"> <div class="win95-window"> <!-- Title Bar --> <div class="win95-header flex justify-between items-center"> <div class="flex items-center"> <img src="/api/placeholder/16/16" alt="calculator" class="mr-1" /> <span class="font-bold">Byte Calculator 95</span> </div> <div class="flex space-x-1"> <button class="px-2 win95-button text-black">_</button> <button class="px-2 win95-button text-black">□</button> <button class="px-2 win95-button text-black">×</button> </div> </div> <!-- Calculator Body --> <div class="p-4"> <!-- Tabs --> <div class="flex border-b-2 border-gray-500 mb-4"> <button class="win95-button px-4 py-1 tab-active" onclick="switchTab('calculator')">Calculator</button> <button class="win95-button px-4 py-1" onclick="switchTab('bytes')">Bytes</button> <button class="win95-button px-4 py-1" onclick="switchTab('transfer')">Transfer</button> </div> <!-- Calculator Tab --> <div id="calculator" class="tab-content"> <div class="win95-inset calc-display" id="display">0</div> <div class="grid grid-cols-4 gap-1"> <!-- Function buttons --> <button class="win95-button calc-button" onclick="clearDisplay()">C</button> <button class="win95-button calc-button" onclick="backspace()">←</button> <button class="win95-button calc-button" onclick="appendOp('/')">/</button> <button class="win95-button calc-button" onclick="appendOp('*')">*</button> <!-- Numbers and operations --> <button class="win95-button calc-button" onclick="appendNum('7')">7</button> <button class="win95-button calc-button" onclick="appendNum('8')">8</button> <button class="win95-button calc-button" onclick="appendNum('9')">9</button> <button class="win95-button calc-button" onclick="appendOp('-')">-</button> <button class="win95-button calc-button" onclick="appendNum('4')">4</button> <button class="win95-button calc-button" onclick="appendNum('5')">5</button> <button class="win95-button calc-button" onclick="appendNum('6')">6</button> <button class="win95-button calc-button" onclick="appendOp('+')">+</button> <button class="win95-button calc-button" onclick="appendNum('1')">1</button> <button class="win95-button calc-button" onclick="appendNum('2')">2</button> <button class="win95-button calc-button" onclick="appendNum('3')">3</button> <button class="win95-button calc-button h-full row-span-2" onclick="calculate()">=</button> <button class="win95-button calc-button col-span-2" onclick="appendNum('0')">0</button> <button class="win95-button calc-button" onclick="appendNum('.')">.</button> </div> </div> <!-- Bytes Converter Tab --> <div id="bytes" class="tab-content hidden"> <div class="space-y-4"> <div> <label class="block mb-1">Enter Value:</label> <input type="number" id="byteInput" class="win95-inset w-full p-2" onchange="convertBytes(this.value)"> </div> <div class="grid grid-cols-2 gap-4"> <div> <label class="block mb-1">Bytes:</label> <div class="win95-inset p-2" id="bytesResult">0 B</div> </div> <div> <label class="block mb-1">Kilobytes:</label> <div class="win95-inset p-2" id="kbResult">0 KB</div> </div> <div> <label class="block mb-1">Megabytes:</label> <div class="win95-inset p-2" id="mbResult">0 MB</div> </div> <div> <label class="block mb-1">Gigabytes:</label> <div class="win95-inset p-2" id="gbResult">0 GB</div> </div> </div> <div class="win95-inset p-2 mt-4" id="funFact"> Fun fact: This is equivalent to 0 floppy disks (1.44 MB each) </div> </div> </div> <!-- Transfer Calculator Tab --> <div id="transfer" class="tab-content hidden"> <div class="space-y-4"> <div> <label class="block mb-1">File Size (MB):</label> <input type="number" id="fileSize" class="win95-inset w-full p-2" placeholder="Enter file size..."> </div> <div> <label class="block mb-1">Connection Speed:</label> <select id="speedType" class="win95-button w-full p-2"> <option value="56">56k Modem (56 Kbps)</option> <option value="1500">DSL (1.5 Mbps)</option> <option value="10000">Cable (10 Mbps)</option> <option value="100000">Fast Cable (100 Mbps)</option> <option value="1000000">Gigabit (1 Gbps)</option> </select> </div> <button class="win95-button w-full p-2" onclick="calculateTransfer()">Calculate Transfer Time</button> <div class="win95-inset p-2" id="transferResult"> Estimated download time will appear here... </div> </div> </div> </div> </div> </div> <script> // Calculator Variables let currentDisplay = '0'; let newNumber = true; // Calculator Functions function updateDisplay() { document.getElementById('display').textContent = currentDisplay; } function appendNum(num) { if (newNumber) { currentDisplay = ''; newNumber = false; } currentDisplay += num; updateDisplay(); } function appendOp(op) { currentDisplay += ' ' + op + ' '; newNumber = false; updateDisplay(); } function calculate() { try { currentDisplay = eval(currentDisplay).toString(); newNumber = true; updateDisplay(); } catch (e) { currentDisplay = 'Error'; newNumber = true; updateDisplay(); } } function clearDisplay() { currentDisplay = '0'; newNumber = true; updateDisplay(); } function backspace() { currentDisplay = currentDisplay.slice(0, -1); if (currentDisplay === '') { currentDisplay = '0'; newNumber = true; } updateDisplay(); } // Bytes Converter function convertBytes(value) { const bytes = parseFloat(value); const kb = bytes / 1024; const mb = kb / 1024; const gb = mb / 1024; document.getElementById('bytesResult').textContent = bytes.toFixed(2) + ' B'; document.getElementById('kbResult').textContent = kb.toFixed(2) + ' KB'; document.getElementById('mbResult').textContent = mb.toFixed(2) + ' MB'; document.getElementById('gbResult').textContent = gb.toFixed(2) + ' GB'; const floppyDisks = Math.ceil(bytes / (1.44 * 1024 * 1024)); document.getElementById('funFact').textContent = `Fun fact: This is equivalent to ${floppyDisks} floppy disk${floppyDisks !== 1 ? 's' : ''} (1.44 MB each)`; } // Transfer Calculator function calculateTransfer() { const fileSize = parseFloat(document.getElementById('fileSize').value); const speed = parseFloat(document.getElementById('speedType').value); if (!fileSize || isNaN(fileSize)) { document.getElementById('transferResult').textContent = 'Please enter a valid file size'; return; } // Convert MB to bits (MB * 8 * 1024 * 1024) const fileSizeBits = fileSize * 8 * 1024 * 1024; const seconds = fileSizeBits / speed; let timeString = ''; if (seconds < 60) { timeString = `${seconds.toFixed(1)} seconds`; } else if (seconds < 3600) { timeString = `${(seconds / 60).toFixed(1)} minutes`; } else { timeString = `${(seconds / 3600).toFixed(1)} hours`; } document.getElementById('transferResult').textContent = `Estimated download time: ${timeString}`; } // Tab Switching function switchTab(tabName) { // Hide all tabs document.querySelectorAll('.tab-content').forEach(tab => { tab.classList.add('hidden'); }); // Show selected tab document.getElementById(tabName).classList.remove('hidden'); // Update tab styling document.querySelectorAll('.win95-button').forEach(button => { button.classList.remove('tab-active'); }); event.target.classList.add('tab-active'); } </script> </body> </html>