Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
-11 / 6 / 0
Регистрация: 23.02.2023
Сообщений: 431

Как к дате добавить "n" дней?

24.01.2024, 19:22. Показов 10447. Ответов 171
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
есть какая то дата например 10.02.2024, надо получить несколько дат,

дата1 = дата + 5 дней

дата2 = дата + 73 дня

дата3 = дата - 19 дней

дата4 = дата - 75 дней

как это сделать?

Добавлено через 7 минут
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
<!DOCTYPE HTML>
<html lang="ru-RU">
<head>
    <meta charset="UTF-8">
    <title>Chinese Zodiac</title>
    <style>
        @import url(https://db.onlinewebfonts.com/c/20a04794234e8f0981f0400c51ba02cd?family=OpticalBDB+Normal);orUse font-face declaration Fonts.(http | https)
        @font-face {
        font-family: "OpticalBDB Normal";
        src: url("https://db.onlinewebfonts.com/t/20a04794234e8f0981f0400c51ba02cd.eot");
        src: url("https://db.onlinewebfonts.com/t/20a04794234e8f0981f0400c51ba02cd.eot?#iefix")format("embedded-opentype"),
        url("https://db.onlinewebfonts.com/t/20a04794234e8f0981f0400c51ba02cd.woff2")format("woff2"),
        url("https://db.onlinewebfonts.com/t/20a04794234e8f0981f0400c51ba02cd.woff")format("woff"),
        url("https://db.onlinewebfonts.com/t/20a04794234e8f0981f0400c51ba02cd.ttf")format("truetype"),
        url("https://db.onlinewebfonts.com/t/20a04794234e8f0981f0400c51ba02cd.svg#OpticalBDB Normal")format("svg");
        }
        
        #desiredDate {
            outline: none;
            background-color: hsl(120,100%,97%);
            color: hsl(120,100%,25%);
            border: 1px solid hsl(120,100%,25%);
            border-radius: 15px/10px;
            font: bold 24px serif;
            padding: 5px 20px;
            margin-bottom: 20px;
            letter-spacing: 3px;
            font-family: "OpticalBDB Normal";
            
        }
        #info {
            white-space: nowrap;
            background-color: hsl(120,100%,98%);
            color: hsl(120,100%,25%);
            border: 1px solid hsl(120,100%,30%);
            border-radius: 15px/10px;
            font: bold 16px serif;
            padding: 10px 20px;
        }
    </style>
</head>
<body>
 
<input type="date" id="desiredDate" min="1863-01-01" max="2299-12-31" />
<br/>
<div id="info"></div>
 
  <script>
    var listColors = [
      "зелёно", "зелёно", "красно", "красно", "жёлто", "жёлто", "бело", "бело", "сине", "сине"];
    var listEnd = [
      "й", "го", "го", "го","го", "й","й", "й", "й", "го", "й", "й"];
    var listAnimal = [
      "крысы", "быка", "тигра", "кролика", "дракона", "змеи", "лошади", "козы", "обезьяны", "петуха", "собаки", "свиньи" ];
    var dates = [
      { month: "01",
        day: [
          {"21":
            ["1890", "1966"] },
          {"22":
            ["1879", "1898", "1909", "1947", "2004", "2023", "2042"] },
          {"23":
            ["1917", "1928", "1974", "1993", "2012", "2031"] },
          {"24":
            ["1887", "1936", "1955", "2001", "2039"] },
          {"25":
            ["1868", "1906", "1925", "1944", "1963", "1982", "2020"] },
          {"26":
            ["1876", "1895", "1914", "1933", "2009", "2028"] },
          {"27":
            ["1865", "1941", "1952", "1971", "1990"] },
          {"28":
            ["1884", "1922", "1960", "1979", "1998", "2017", "2036"] },
          {"29":
            ["1873", "1903", "1949", "1987", "2006", "2025"] },
          {"30":
            ["1881", "1892", "1911", "1930", "1968", "2044"] },
          {"31": 
            ["1870", "1889", "1900", "1938", "1957", "1976", "1995", "2014", "2033"] },
            ]
        },
        { month: "02",
          day: [
          {"1":
            ["1919", "2003", "2022", "2041"] },
          {"2":
            ["1878", "1897", "1908", "1927", "1946", "1965", "1984"] },
          {"3":
            ["1916", "1954", "1973", "2011", "2030"] },
          {"4":
            ["1886", "1905", "1935", "1992", "2038"] },
          {"5":
            ["1867", "1924", "1943", "1962", "1981", "2019"] },
          {"6":
            ["1875", "1894", "1913", "1932", "1951", "1970", "1989", "2027"] },
          {"7":
            ["1978", "1997", "2008"] },
          {"8":
            ["1864", "1883", "1902", "1921", "1940", "1959", "2016", "2035"] },
          {"9":
            ["1872", "1891", "1967", "1986", "2005"] },
          {"10":
            ["1880", "1899", "1910", "1929", "1948", "1994", "2013", "2024", "2043"] },
          {"11":
            ["1869", "1918", "1937", "1975", "2032"] },
          {"12":
            ["1888", "1956", "2021", "2040"] },
          {"13":
            ["1877", "1896", "1907", "1926", "1945", "1964", "1983", "2029"] },
          {"14":
            ["1915", "1934", "1953", "2010"] },
          {"15":
            ["1866", "1885", "1942", "1961", "1972", "1991", "2037"] },
          {"16":
            ["1904", "1923", "1980", "1999", "2018"] },
          {"17":
            ["1874", "1893", "1931", "1950", "1969", "1988", "2026"] },
          {"18":
            ["1863", "1882", "1912", "1958", "1977", "2007"] },
          {"19":
            ["1871", "1901", "1939", "1996", "2015", "2034"] },
          {"20":
            ["1920", "1985"] },
            ]
        }
    ];
 
   function srch(arr, dat) {
     var p = dat.split('-')[0];
       function run(a, z, b) {
         if(b.length === 6) return b;
           for(var i = 0; i < a.length; i++) {
             for(var j = 0; j < a[i].day.length; j++) {
               for(var o in a[i].day[j]) {
                 for(var r = 0; r < a[i].day[j][o].length; r++) {
                  if(a[i].day[j][o][r] == z) {
                    b.push(o, a[i].month, z);
                  return run(a, String(++p), b);
                }
              }
            }
          }
        }
      }
      return run(arr, p, []);
  }
 
function ChineseZodiac() {
  var result = srch(dates, this.value);
  var oneDataDay = parseInt(result[0]);
  var oneDataMonth = result[1];
  var oneDataYear = result[2];
  var endDataDay = parseInt(result[3]) - 1;
  var endDataMonth = result[4];
  var endDataYear = result[5];
 
  var oneData = oneDataDay + '.' + oneDataMonth + '.' + oneDataYear;
  var endData = endDataDay + '.' + endDataMonth + '.' + endDataYear;
  var cineseYear = oneData + '-' + endData;
 
  
  var currentDate = this.value ? new Date(this.value) : new Date();
  var currentYear = currentDate.getFullYear();
 
  var colorIndex = (currentYear - 1564) % 10;
  var color = listColors[colorIndex];
 
  var endIndex = (currentYear - 1564) % 12;
  var end = listEnd[endIndex];
 
  var animalIndex = (currentYear - 1564) % 12;
  var animal = listAnimal[animalIndex];
 
  var chineseNumYear = currentYear + 2697;
  var cycleNum = Math.floor(chineseNumYear / 60) + 1;
  var yearCycle = (chineseNumYear % 60 === 0 ? 6 : chineseNumYear % 60) + " год в 60-летнем цикле.";
 
  var infoElement = document.getElementById("info");
  infoElement.innerHTML = "год " + color + end + " " + animal + "." + "<br/>" + oneData + '-' + endData + "<br/>" + chineseNumYear + " г." + "<br/>" + cycleNum + " цикл" + "<br/>" + yearCycle;
}
 
 
    var input = document.getElementById('desiredDate');
 
    input.value = new Date().getFullYear() + '-' + ((new Date().getMonth() < 9) ? '0' : '') + (new Date().getMonth() + 1) + '-' + ((new Date().getDate() < 10) ? '0' : '') + new Date().getDate();
    input.addEventListener('change', ChineseZodiac);
    input.dispatchEvent(new Event('change'));
  </script>
 </body>
</html>
в этом скрипте получаем даты,

JavaScript
1
2
3
4
5
6
7
8
9
10
var result = srch(dates, this.value);
  var oneDataDay = parseInt(result[0]);
  var oneDataMonth = result[1];
  var oneDataYear = result[2];
  var endDataDay = parseInt(result[3]) - 1;
  var endDataMonth = result[4];
  var endDataYear = result[5];
 
  var oneData = oneDataDay + '.' + oneDataMonth + '.' + oneDataYear;
  var endData = endDataDay + '.' + endDataMonth + '.' + endDataYear;
как дальше получить даты национальных китайских праздников, +/- дней от этих дат?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.01.2024, 19:22
Ответы с готовыми решениями:

Добавить 7 дней к текущей дате
надо Выведите на экран дату, которая будет через неделю после текущей. вот я сделал , но добавляется не к дням, а к месяцам var...

Как добавить к дате n дней?
У меня есть дата из datetimepicture, и допустим 5 дней, как мне добавить 5 дней к дате? Потому что если я сделаю var data =...

Как добавить 45 дней к дате приема?
У меня есть бд с полями &quot;ФИО&quot;,&quot;дата приема&quot;! Мне нужно чтобы к дате приема прибавлялось 45 дней и программа показывала дату выдачи и...

171
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3823 / 1661 / 428
Регистрация: 14.03.2022
Сообщений: 4,170
24.01.2024, 20:33
Цитата Сообщение от бел ка Посмотреть сообщение
есть какая то дата например 10.02.2024, надо получить несколько дат,
дата1 = дата + 5 дней
дата2 = дата + 73 дня
дата3 = дата - 19 дней
дата4 = дата - 75 дней
как это сделать?
Может почитать таки учебник по JS?

JavaScript
1
2
3
4
const date = new Date();
const day = 5
date.setDate(date.getDate() + day);
console.log(date)
Добавлено через 1 минуту
Цитата Сообщение от бел ка Посмотреть сообщение
в этом скрипте получаем даты
Отнюдь...
В том скрипте ты получаешь строку.

Добавлено через 1 минуту
бел ка, у тебя вообще какой-то странный подход к программированию. Программы должны писать и править за тебя другие люди.
Книжки по JS не читаешь...
0
168 / 146 / 32
Регистрация: 03.09.2018
Сообщений: 499
24.01.2024, 21:36
Цитата Сообщение от krvsa Посмотреть сообщение
Книжки по JS не читаешь...
В наше время достаточно вбить просто в гугл, и будет счастье на первой странице Это сюр какой то
0
-11 / 6 / 0
Регистрация: 23.02.2023
Сообщений: 431
24.01.2024, 21:49  [ТС]
krvsa,

Цитата Сообщение от krvsa Посмотреть сообщение
Отнюдь...
В том скрипте ты получаешь строку.


значит я не правильно формулирую вопрос, и не получаю в гугле и на форуме ответов на вопросы

походу наверное надо спрашивать как из строки получить дату,

надеюсь сейчас правильно задала вопрос, и надеюсь получить нормальный ответ, как в том скрипте из строк получить даты
0
 Аватар для voraa
1249 / 1159 / 178
Регистрация: 21.01.2024
Сообщений: 5,399
24.01.2024, 22:08
Цитата Сообщение от бел ка Посмотреть сообщение
и не получаю в гугле и на форуме ответов на вопросы
Гуглить тоже надо уметь
https://www.google.com/search?... s-wiz-serp
Один из первых результатов: https://developer.mozilla.org/... Date/parse
0
168 / 146 / 32
Регистрация: 03.09.2018
Сообщений: 499
24.01.2024, 22:33
https://github.com/ytliu0/ChineseCalendar

Демо

https://ytliu0.github.io/Chine... index.html

Gregorian Year: 2010
Chinese year:
Jǐ chǒu (Ox) before February 14,
Gēng yín (Tiger) on and after February 14

Gregorian Year: 2024
Chinese year:
Guǐ mǎo (Rabbit) before February 10,
Jiǎ chén (Dragon) on and after February 10
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3823 / 1661 / 428
Регистрация: 14.03.2022
Сообщений: 4,170
24.01.2024, 23:08
Цитата Сообщение от бел ка Посмотреть сообщение
надеюсь сейчас правильно задала вопрос
Нет.
Если бы ты просто прочла учебник - там бы сразу узнала ответ.
JavaScript
1
new Date(year, month, date, hours, minutes, seconds, ms)
https://learn.javascript.ru/date
year, month и date у тебя уже есть в массиве.

Цитата Сообщение от Именч Посмотреть сообщение
Это сюр какой то
Чтение книг - это сюр?
0
168 / 146 / 32
Регистрация: 03.09.2018
Сообщений: 499
24.01.2024, 23:18
Цитата Сообщение от krvsa Посмотреть сообщение
Чтение книг - это сюр?
Неумение гуглить, анализировать информацию и применять её.

Насчёт книг ничего не скажу, ни одну не читал. Я больше любитель документации.
1
-11 / 6 / 0
Регистрация: 23.02.2023
Сообщений: 431
25.01.2024, 20:07  [ТС]
krvsa, прочитала кучу страниц в сети, но так и не смогла найти ответ на вопрос, возможно ли распарсить строку с частью даты, если в строке только день, только месяц, только год, или день месяц, месяц год, и т.д. или сначала надо получить все части даты, а только потом парсить ?

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

вопрос по моему коду, как изменить эти строки
JavaScript
1
2
var colorIndex = (currentYear - 1564) % 10;
  var color = listColors[colorIndex];
чтобы указать скрипту что цвет должен повторится, ну или другими словами цвет соответствует 2летнему периоду...


Добавлено через 12 минут
например
JavaScript
1
2
var colorIndex = (currentYear - 1564) *2 % 10;
var color = listColors[colorIndex];
или как?
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3823 / 1661 / 428
Регистрация: 14.03.2022
Сообщений: 4,170
25.01.2024, 20:17
Цитата Сообщение от бел ка Посмотреть сообщение
прочитала кучу страниц в сети
Начать нужно с любого учебника по JS, дабы понять как вообще работать с JS и каким арсеналом он обладает.

Цитата Сообщение от бел ка Посмотреть сообщение
возможно ли распарсить строку с частью даты
Так и я не понял что ты тут хочешь...
0
-11 / 6 / 0
Регистрация: 23.02.2023
Сообщений: 431
25.01.2024, 20:37  [ТС]
получили части даты из массива, а что дальше? из двух вариантов

1.) распарсить эти части, отнять один день а потом получать всю дату

2.) соединить части даты в одну строку, и только потом парсить всю дату, а потом отнимать один день
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3823 / 1661 / 428
Регистрация: 14.03.2022
Сообщений: 4,170
25.01.2024, 20:42
Цитата Сообщение от бел ка Посмотреть сообщение
распарсить эти части
Как можно распарсить 3 числа?

А вот получить дату, имея год, месяц и день - можно. Как - это написано в учебнике
JavaScript
1
const d = new Date(year, month, date, hours, minutes, seconds, ms)
https://learn.javascript.ru/date
0
-11 / 6 / 0
Регистрация: 23.02.2023
Сообщений: 431
25.01.2024, 20:46  [ТС]
krvsa,
вопрос по моему коду, как изменить эти строки
JavaScript
1
2
var colorIndex = (currentYear - 1564) % 10;
  var color = listColors[colorIndex];
чтобы указать скрипту что цвет должен повторится, ну или другими словами цвет соответствует 2летнему периоду...

добавлено
например
JavaScript
1
2
var colorIndex = (currentYear - 1564) *2 % 10;
var color = listColors[colorIndex];
или как?
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3823 / 1661 / 428
Регистрация: 14.03.2022
Сообщений: 4,170
25.01.2024, 21:00
бел ка, я понятия не имею что ты там вообще варганишь, совершенно не умея программировать...
0
 Аватар для voraa
1249 / 1159 / 178
Регистрация: 21.01.2024
Сообщений: 5,399
25.01.2024, 21:14
Цитата Сообщение от бел ка Посмотреть сообщение
возник вопрос не имеющий отношения к коду выше, возможно ли распарсить строку где месяц написан кириллицей, римскими цифрами, и т.д. например создать массив перечислить все варианты названия месяца(русск, белоруск, укр, римские и т.д.) в первый элемент массива...
Запрограммировать можно что угодно.
0
-11 / 6 / 0
Регистрация: 23.02.2023
Сообщений: 431
25.01.2024, 22:28  [ТС]
krvsa, йа только учусь....

есть массив, с 10 элементами, каждый элемент повторяется дважды, в этом случае строки
JavaScript
1
2
var colorIndex = (currentYear - 1564) % 10;
var color = listColors[colorIndex];
работают правильно,
как должна быть написана строка
JavaScript
1
var colorIndex = (currentYear - 1564) % 10;
если в массиве оставить только 5 элементов не повторяя каждый элемент дважды
JavaScript
1
var colorIndex = (currentYear - 1564) *2% 10;
так? или как написать?
надеюсь сейчас вопрос сформулирован правильно...
0
 Аватар для voraa
1249 / 1159 / 178
Регистрация: 21.01.2024
Сообщений: 5,399
25.01.2024, 22:45
Цветов 5 и повторяются каждые 5 лет?
Тогда изначально было неправильно.
Надо
JavaScript
1
var colorIndex = (currentYear - 1564)  % 5;
0
-11 / 6 / 0
Регистрация: 23.02.2023
Сообщений: 431
25.01.2024, 22:55  [ТС]
voraa, нет, цветов пять, каждый цвет повторяется дважды, четный + нечетный год, в итоге получается 10 летний цикл

Добавлено через 3 минуты
JavaScript
1
2
var listColors = [
      "зелёно", "зелёно", "красно", "красно", "жёлто", "жёлто", "бело", "бело", "сине", "сине"];
вот массив, и тогда та строка работает правильно...
0
 Аватар для voraa
1249 / 1159 / 178
Регистрация: 21.01.2024
Сообщений: 5,399
25.01.2024, 22:57
Ну тогда, что бы количество цветов в массиве сократить до 5
JavaScript
1
var colorIndex = Math.floor((currentYear - 1564)  % 10 /2)
0
-11 / 6 / 0
Регистрация: 23.02.2023
Сообщений: 431
25.01.2024, 23:20  [ТС]
voraa, пасиб

а не подскажешь как в этот массив добавить к каждому элементу класс?

JavaScript
1
2
var listColors = [
      "зелёно", "красно", "жёлто", "бело", "сине"];
согласно этого цикла html элементу присваивается класс, с названием, чтобы не создавать второй массив, каждому элементу массива присвоили значение и надо добавить
class="one"... назначить

Добавлено через 6 минут
JavaScript
1
2
var listColors = [
      "зелёно: one",  .........
вроде так?

Добавлено через 4 минуты
или
JavaScript
1
2
var listColors = [
      "зелёно: class = one",  .........
?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.01.2024, 23:20
Помогаю со студенческими работами здесь

Добавить n дней к дате в виде строки dd.mm.yy
Из строки содержащей корректно заданную дату в формате &quot;dd.mm.yy&quot; где dd-день, mm-месяц, yy-год, получить строку с датой, отстоящей от...

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

Как добавить "N" рабочих дней к сегодняшней дате?
Сегодня 5.05.2020 (вторник) если к нему добавить 4 рабочих дня то получится 11.05.2020 (понедельник). Т.е. выходные (сб, вс.) не считаем. ...

Добавить заданное количество дней к текущей дате
Здравствуйте! Мне нужно сделать програмку которая будет брать текущую дату выводить ее в Label, потом добавить к этой дате 10 дней и...

А можно ли добавить к дате определенное кол-во дней?
А можно ли добавить к дате определенное кол-во дней? Например, сегодня 2004-10-08, мне надо добавить 10 дней и получить 2004-10-08....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru