Facebook
From Ivory Partdridge, 3 Years ago, written in JavaScript.
This paste is a reply to Re: Aleksander Tsoy_Find Khronos day from Botched Marmoset - view diff
Embed
Download Paste or View Raw
Hits: 249
  1. function day(inner) {
  2.   let a = 0;
  3.   let b = 0;
  4.   let visocos = 0;
  5.   let arr = inner.split("."); // разбивка строки на массив
  6.  
  7.   if (arr[1] == 2 && arr[0] > 31) {
  8.     arr[0] = 31;
  9.   }
  10.   if (arr[1] != 2 && arr[0] > 30) {
  11.     arr[0] = 30;
  12.   }
  13.   if (arr[1] > 12) {
  14.     // не более 12 мес
  15.     arr[1] = 12;
  16.   }
  17.   if (arr[2] < 0) {
  18.     // год не отрицательное число
  19.     arr[2] = 0;
  20.   }
  21.   if (arr[2] > 4) {
  22.     if (arr[1] >= 3) {
  23.       visocos += Math.floor(arr[2] / 5);
  24.     } else {
  25.       visocos += Math.floor(arr[2] / 5);
  26.       if ((arr[1] < 3 && arr[2] == 5) || Math.floor(arr[2] / 1000) > 0) {
  27.         visocos -= 1;
  28.       }
  29.     }
  30.   }
  31.   if (arr[2] >= 100) {
  32.     visocos -= Math.floor(arr[2] / 100); // отнимаю высокосные дни каждых 100л.
  33.     if (arr[2] >= 500) {
  34.       visocos += Math.floor(arr[2] / 500); // добавляю высокосные дни за каждые 500л.
  35.     }
  36.   }
  37.   if (arr[2] > 0) {
  38.     // если год больше 0
  39.     a = arr[2] * 360; // умножить число на 360 дней.
  40.   }
  41.   if (arr[1] > 1) {
  42.     // если месяц больше 1
  43.     b = (arr[1] - 1) * 30; // число умножить на 30 дней.
  44.   }
  45.   let c = arr[0] * 1; // получаем кол-во дней кроме 0
  46.   let days = ["Среда", "Четв", "Пятн", "Суб", "Воск", "Пон", "Вторн"]; // записываем массив
  47.   let totalDays = a + b + c + visocos - 359;
  48.   let res = (a + b + c + visocos) % 7; // сумма год, мес, дни, высокосные дни получ остаток от деления
  49.   //  return days[res]
  50.   //  document.write(arr[0]     +  '.' + arr[1] + '.' + arr[2]  + ' => ' + totalDays + '<br />'
  51.   //  + days[res] + '<br />');
  52.   document.write(
  53.     days[res] +
  54.       " : " +
  55.       totalDays +
  56.       "<br />" +
  57.       "Высокосные: " +
  58.       visocos +
  59.       "<br />" +
  60.       "День: " +
  61.       arr[0] +
  62.       " Мес: " +
  63.       arr[1] +
  64.       " Год: " +
  65.       arr[2] +
  66.       "<br />" +
  67.       "<br />"
  68.   );
  69. }
  70.  
  71. day("31.02.05");
  72. day("30.02.05");
  73. day("1.03.05");
  74. day("30.02.1100");
  75. day("01.03.1100");
  76. day("01.03.1104");
  77. day("01.03.1106");
  78. day("01.02.100");
  79. day("01.03.100");
  80. day("30.02.5");
  81. day("30.03.5");
  82. day("3.02.5");
  83. day("3.02.6");
  84. day("24.08.1001");
  85. day("24.03.996");
  86. day("30.02.1005");
  87. day("24.03.1006");
  88. day("24.08.1");
  89. day("24.08.0");
  90. day("34.02.15"); // проверка дня на превышение
  91. day("31.20.16"); // проверка месяца на превышение
  92.  

Replies to Aleksander Tsoy_Find Khronos day rss

Title Name Language When
Re: Aleksander Tsoy_Find Khronos day Voluminous Leopard javascript 3 Years ago.