БлогNot. Начались ли двадцатые годы и по-настоящему безумный календарь

Начались ли двадцатые годы и по-настоящему безумный календарь

Хорошо, что я не смотрю зомбоящики... Просто позвонил знакомый, раздражённый тем, что везде говорят о "начале двадцатых" и даже педивикия туда же:

2010-е годы (10-е, десятые) — десятилетие, включающее года с 2010 по 2019

Бывают же такие педанты (я в хорошем смысле этого слова :)

Математически, конечно, 2020-е начнутся с 1 января 2021 года, по той же причине, по который новый век и тысячелетие начались с 1 января 2001 года, а не 2000-го, и по той же, по которой очередной ящик пива (я о классических ящиках, по 20 стеклянных бутылок 0,5) начинается с 21-й бутылки, а на 20-й только заканчивается предыдущий :)

Просто следует знать, что "нулевого" года в истории не было, а перед первым годом нашей эры был непосредственно "первый год до нашей эры", так что формально год с нулём на конце относится, конечно, к предыдущему десятилетию.

Но, как часто бывает в жизни, в обыденной речи и представлениях синтаксис отделён от семантики.

"Шестидесятыми", например, в русском языке называют годы, в которых есть слово "шестьдесят", с 1960-го по 1969-й, а "десятыми", соответственно, оказались годы с 2010-го по 2019-й.

Вот лучше вам придуманный по этому поводу по-настоящему безумный календарь, он показывает всю нужную информацию, включая день, месяц, год, день недели, часы, минуты и секунды по часам вашего компьютера. Что есть что, думаю, видно очень наглядно, а вы всё поняли? :)

Включите Javascript в браузере для работы приложения!

Исходник (файл .html без обрамления) - под катом.

 <style>
  .madClockOuter {
   margin: 0 auto;
   text-align: center;
  }
  #madclock {
   font-family: monospace;
  }
 </style>
 <div class="madClockOuter">
  <span id="madclock">Включите Javascript в браузере для работы приложения!</span>
 </div>
 <script>
  function madClock (id) {
   function pad2 (i) {
    return String("0" + i).slice(-2);
   }
   let elem = document.getElementById(id);
   let s = '';
   for (let i=0; i<60; i++) {
    s += '<span id="madclock' + i +'">' + pad2(i) + 
         '</span>' + ((i+1)%12==0 ? "<br>\n" : (i<59 ? ' ' : ''));
   }
   elem.innerHTML= s;

   function now () {
    let date = new Date();
    let hour=date.getHours();
    let minute=date.getMinutes();
    let sec=date.getSeconds();
    let day=date.getDate();
    let month=date.getMonth() + 1; //1-12
    let year=date.getFullYear();
    let weekday=date.getDay();
    if (weekday == 0) weekday = 7; //1-7, с Пн
    return [hour, minute, sec, day, month, year, weekday];
   }
   function splitNumber (n) {
    return n.toString().split('');
   }
   function make3x5 (pos,d,cond) {
    let matr = [
     [1,1,1, 1,0,1, 1,0,1, 1,0,1, 1,1,1], //0
     [0,1,0, 0,1,0, 0,1,0, 0,1,0, 0,1,0], //1
     [1,1,1, 0,0,1, 1,1,1, 1,0,0, 1,1,1], //2
     [1,1,1, 0,0,1, 1,1,1, 0,0,1, 1,1,1], //3
     [1,0,1, 1,0,1, 1,1,1, 0,0,1, 0,0,1], //4
     [1,1,1, 1,0,0, 1,1,1, 0,0,1, 1,1,1], //5
     [1,1,1, 1,0,0, 1,1,1, 1,0,1, 1,1,1], //6
     [1,1,1, 0,0,1, 0,0,1, 0,0,1, 0,0,1], //7
     [1,1,1, 1,0,1, 1,1,1, 1,0,1, 1,1,1], //8
     [1,1,1, 1,0,1, 1,1,1, 0,0,1, 1,1,1]  //9
    ];
    let st = pos*3, k = 0;
    for (let i = 0; i < 5; i++) {
     for (let j = st; j < st + 3; j++) {
      let n = i*12 + j;
      document.getElementById('madclock'+n).style.backgroundColor = 
       (cond == false ? 'transparent' : (matr[d][k++] == 1 ? '#ffccff' : 'transparent'));
     }
    }
   }
   let oldDate = now(), yarr = [];
   function innerClock() {
    document.getElementById('madclock'+oldDate[0]).innerHTML = pad2(oldDate[0]);
    document.getElementById('madclock'+oldDate[1]).innerHTML = pad2(oldDate[1]);
    document.getElementById('madclock'+oldDate[0]).style.color = 
    document.getElementById('madclock'+oldDate[1]).style.color = 
    document.getElementById('madclock'+oldDate[2]).style.color = 'black';
    document.getElementById('madclock'+oldDate[3]).style.textDecoration = 
    document.getElementById('madclock'+oldDate[4]).style.textDecoration = 'none';
    document.getElementById('madclock'+oldDate[6]).style.fontWeight = 'normal';
    yarr = splitNumber (oldDate[5]);
    for (let i=0; i<yarr.length; i++) make3x5 (i,yarr[i],false);

    let newDate = now();
    if (newDate[0] == newDate[1]) {
     document.getElementById('madclock'+newDate[0]).innerHTML = 'HM';
    }
    else {
     document.getElementById('madclock'+newDate[0]).innerHTML = 'HH';
     document.getElementById('madclock'+newDate[1]).innerHTML = 'MM';
     document.getElementById('madclock'+newDate[1]).style.color = 'blue';
    }
    document.getElementById('madclock'+newDate[0]).style.color = 'red';
    document.getElementById('madclock'+newDate[2]).style.color = '#11cc11';
    if (newDate[3] == newDate[4]) {
     document.getElementById('madclock'+newDate[3]).style.textDecoration = 'underline overline';
    }
    else {
     document.getElementById('madclock'+newDate[3]).style.textDecoration = 'underline';
     document.getElementById('madclock'+newDate[4]).style.textDecoration = 'overline';
    }
    document.getElementById('madclock'+newDate[6]).style.fontWeight = 'bold';
    yarr = splitNumber (newDate[5]);
    for (let i=0; i<yarr.length; i++) make3x5 (i,yarr[i],true);

    oldDate = newDate.slice(); //копировать массив по значению
   }
   innerClock();
   setInterval(innerClock,1000);
  } //madClock

  window.addEventListener ('load', function (e) {
   madClock('madclock');
  } );
 </script>

теги: javascript числа дата ошибка время язык

02.01.2020, 15:24; рейтинг: 212