This commit is contained in:
dan63047 2020-06-26 14:52:22 +03:00
commit cd19d83247
6 changed files with 96 additions and 0 deletions

0
.gitignore vendored Normal file
View File

1
README.md Normal file
View File

@ -0,0 +1 @@
Просто сайт, оповещающей о проблеме 2038 года, запилил чисто по фану.

BIN
icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 782 B

52
index.html Normal file
View File

@ -0,0 +1,52 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Проблема 2038 года</title>
<link href="https://fonts.googleapis.com/css?family=Heebo&display=swap" rel="stylesheet">
<link rel="shortcut icon" href="icon.png" type="image/x-icon">
<link rel="stylesheet" type="text/css" href="style.css">
<meta name="theme-color" id="meta-color" content="#000000">
</head>
<body>
<h1 id="title">До смерти 32-битных систем осталось</h1>
<div style="text-align: center;"><span id="time-left"></span><span id="time-left-msec"></span></div>
<p id="time-left-readable"></p>
<progress id="prog" max="2147483647"></progress>
<div id="decsription">
<h3>О чём этот сайт?</h3>
<p>Проблема 2038 года в вычислительной технике — ожидаемые сбои в программном обеспечении накануне 19 января
2038 года. Данная проблема затронет программы и системы, в которых используется представление времени по
стандарту POSIX (UNIX-время), которое представляет собой количество секунд, прошедшее с полуночи 1 января
1970 года. Такое представление времени — это стандарт для Unix-подобных операционных систем (из-за
повсеместного использования языка Си).</p>
<p>Сейчас значение Unix timestamp равно <span id="timestamp"></span>.</p>
<p>Для проблемы 2038 года не существует простого решения для существующих комбинаций операционных систем и
прикладного программного обеспечения. Изменение определения типа time_t на 64 бита нарушит бинарную
совместимость программ, существующих хранимых данных и всего другого, использующего представление времени в
бинарном виде. А приведение time_t в целое без знака может нарушить работу программ, которые вычисляют
разницу во времени.</p>
<h3>Что подвержено этой проблеме?</h3>
<p>В большинстве операционных систем для 64-битных архитектур уже используется 64-битное представление целого в
time_t. Переход на такие архитектуры уже происходит, и ожидается, что он будет завершён к 2038 году.</p>
<p>Тем не менее, сотни тысяч 32-битных систем всё ещё вводятся в строй в настоящее время, в том числе и во
встраиваемых системах, что вызывает сомнение, что они все будут заменены к 2038 году. Несмотря на то, что
современные компьютерные системы могут модернизироваться раз в 18—24 месяцев (по «Закону Мура»), встроенные
компьютеры могут действовать без модернизации весь срок, который работают системы, ими управляемые.</p>
<p>В дополнение к этому, 32-битный формат time_t также включён в спецификации форматов файлов, таких как
повсеместно распространённый архивный формат ZIP. Формат файла может существовать в течение времени, за
которое сменятся многие поколения компьютеров, а это означает, что Проблема 2038 останется актуальной.</p>
<h3>Использаванные материалы при составлении этого текста</h3>
<p><a href="https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D0%B0_2038_%D0%B3%D0%BE%D0%B4%D0%B0">Проблема 2038 года - Wikipedia RU</a></p>
</div>
<footer>
<hr>
<p>Автор сайта: <a href="https://t.me/dan63047">dan63047</a></p>
</footer>
<script type="text/javascript" src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script type="text/javascript" src="script.js"></script>
</body>
</html>

23
script.js Normal file
View File

@ -0,0 +1,23 @@
function Cycle() {
var timestamp = Date.now() / 1000,
maxtimestamp = 2147483647,
left = maxtimestamp - timestamp,
t = Math.floor(left),
tmsec = Math.floor(left * 1000) % 1000,
tsec = Math.floor(left % 60),
tmin = Math.floor(left / 60) % 60,
thour = Math.floor(left / 60 / 60) % 24,
tday = Math.floor(left / 60 / 60 / 24);
$("#time-left").html(t.toLocaleString('ru'));
$("#time-left-msec").html("." + ('00' + tmsec).slice(-3));
$("#prog").val(timestamp);
$("#timestamp").html(Math.trunc(timestamp).toLocaleString('ru'));
if (left > 60) { $("#time-left-readable").html("(" + tday + ":" + ("0" + thour).slice(-2) + ":" + ("0" + tmin).slice(-2) + ":" + ("0" + tsec).slice(-2) + ")") } else { $("#time-left-readable").css("display", "none") }
if (left <= 0) {
clearInterval(c);
$("#time-left").html("0");
$("#time-left-msec").html(".000");
$("#title").html("С͓̪̩̳͕͍̄ͮͤ̚̚м̦͎͉̝̋̄е̥͕̫̫̱̱͓̞̾р̞̤̰͖̤̟̫͓̏̍͒ͣ͐͂̚ͅт̗̥̲̩̣̯̹̅ͅь̙͍̟̟̮̩̦̹ͩͤ");
}
}
var c = setInterval(Cycle, 1000 / 60);

20
style.css Normal file
View File

@ -0,0 +1,20 @@
body{
background-color: #000;
color: #fff;
font-family: 'Heebo', sans-serif;
}
#prog{
width: 100%;
}
#time-left{
font-size: 6em;
}
#time-left-readable{
text-align: center;
}
#title{
text-align: center;
}
a:visited{
color: #fff;
}