![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
25.09.2019, 21:39
|
![Аватар для рони](https://javascript.ru/forum/image.php?u=7416&dateline=1372796129) |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,134
|
|
m~r.Nemo,
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
</style>
</head>
<body>
<script>
function monthTable(month, year) {
var monthNames =[
'Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь',
'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'
];
var calendar = { 0: ['Вс'], 1: ['Пн'], 2: ['Вт'], 3: ['Ср'], 4: ['Чт'], 5: ['Пт'], 6: ['Сб'] };
var now = new Date;
var m = month ? month - 1 : now.getMonth();
var y = year ? year : now.getFullYear();
var days = (new Date(y, m + 1, 0)).getDate();
var week = 1;
var start = (new Date(y, m, 1)).getDay();
for (var i = 0; i < days; i++) {
if (start % 7 === 1 && i > 0) week++;
if (calendar[start % 7].length !== week) calendar[start % 7].push(" ");
if (i < 9) calendar[start % 7].push(" " + (i + 1));
else calendar[start % 7].push(i + 1);
start++
}
var txt =
monthNames[m] + ", " + y;
for (var i$0 = 1; i$0 < 8; i$0++) txt += "<br> " + calendar[i$0 % 7].join(" ");
var div = document.createElement("div");
div.innerHTML = txt
return div
}
document.body.appendChild(monthTable(5, 2015));
document.body.appendChild(monthTable(2, 2020));
document.body.appendChild(monthTable());
</script>
</body>
</html>
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
25.09.2019, 21:40
|
![Аватар для m~r.Nemo](https://javascript.ru/forum/image.php?u=24185&dateline=1547290814) |
Аспирант
|
|
Регистрация: 27.10.2012
Сообщений: 80
|
|
рони,
это можно как то исправить?
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
25.09.2019, 21:40
|
![Аватар для рони](https://javascript.ru/forum/image.php?u=7416&dateline=1372796129) |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,134
|
|
Сообщение от m~r.Nemo
|
это можно как то исправить?
|
пост #11
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
25.09.2019, 22:27
|
![Аватар для m~r.Nemo](https://javascript.ru/forum/image.php?u=24185&dateline=1547290814) |
Аспирант
|
|
Регистрация: 27.10.2012
Сообщений: 80
|
|
рони,
а не подскажешь как можно добавить таблицу, чтобы страница имела приблизительно такой код...
<div>Сентябрь, 2019</div>
<table>
<tr><td>Пн</td><td>26</td><td>2</td><td>9</td><td>16</td><td>23</td><td>30</td></tr>
<tr><td>Вт</td><td>27</td><td>3</td><td>10</td><td>17</td><td>24</td><td>1</td></tr>
<tr><td>Ср</td><td>28</td><td>4</td><td>11</td><td>18</td><td>25</td><td>2</td></tr>
<tr><td>Чт</td><td>29</td><td>5</td><td>12</td><td>19</td><td>26</td><td>3</td></tr>
<tr><td>Пт</td><td>30</td><td>6</td><td>13</td><td>20</td><td>27</td><td>4</td></tr>
<tr><td>Сб</td><td>31</td><td>7</td><td>14</td><td>21</td><td>28</td><td>5</td></tr>
<tr><td>Вс</td><td>1</td><td>8</td><td>15</td><td>22</td><td>29</td><td>6</td></tr></table>
Последний раз редактировалось m~r.Nemo, 25.09.2019 в 22:35.
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
25.09.2019, 22:54
|
![Аватар для рони](https://javascript.ru/forum/image.php?u=7416&dateline=1372796129) |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,134
|
|
m~r.Nemo,
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
td{
border: 1px solid #0000FF;
width: 35px;
}
</style>
</head>
<body>
<script>
function monthTable(month, year) {
var monthNames =[
'Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь',
'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'
];
var calendar = { 0: ['Вс'], 1: ['Пн'], 2: ['Вт'], 3: ['Ср'], 4: ['Чт'], 5: ['Пт'], 6: ['Сб'] };
var now = new Date;
var m = month ? month - 1 : now.getMonth();
var y = year ? year : now.getFullYear();
var days = (new Date(y, m + 1, 0)).getDate();
var week = 1;
var start = (new Date(y, m, 1)).getDay();
for (var i = 0; i < days; i++) {
if (start % 7 === 1 && i > 0) week++;
if (calendar[start % 7].length !== week) calendar[start % 7].push(" ");
if (i < 9) calendar[start % 7].push(" " + (i + 1));
else calendar[start % 7].push(i + 1);
start++
}
var txt = "<div>" + monthNames[m] + ", " + y + "<table>";
for (var i$0 = 1; i$0 < 8; i$0++) txt += "<tr><td>" + calendar[i$0 % 7].join("<td>");
var div = document.createElement("div");
div.innerHTML = txt
return div
}
document.body.appendChild(monthTable(5, 2015));
document.body.appendChild(monthTable(2, 2020));
document.body.appendChild(monthTable());
</script>
</body>
</html>
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
25.09.2019, 23:04
|
![Аватар для рони](https://javascript.ru/forum/image.php?u=7416&dateline=1372796129) |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,134
|
|
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
25.09.2019, 23:07
|
![Аватар для m~r.Nemo](https://javascript.ru/forum/image.php?u=24185&dateline=1547290814) |
Аспирант
|
|
Регистрация: 27.10.2012
Сообщений: 80
|
|
А возможно ли добавить дни предыдущего и будущего месяца, чтобы заполнить пустые ячейки столбиков?
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
25.09.2019, 23:44
|
![Аватар для рони](https://javascript.ru/forum/image.php?u=7416&dateline=1372796129) |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,134
|
|
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
25.09.2019, 23:55
|
![Аватар для m~r.Nemo](https://javascript.ru/forum/image.php?u=24185&dateline=1547290814) |
Аспирант
|
|
Регистрация: 27.10.2012
Сообщений: 80
|
|
рони,
если бы я шарил в js я бы не спрашивал, можешь заполнить пустые ячейки?
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
26.09.2019, 01:05
|
![Аватар для рони](https://javascript.ru/forum/image.php?u=7416&dateline=1372796129) |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,134
|
|
m~r.Nemo,
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Calendar</title>
</head>
<body>
<style>
.day {
border: 1px solid #ccc;
width: 30px;
line-height: 30px;
text-align: center;
margin: 1px;
background-color: #B0C4DE;
}
.month {
width: 238px;
height: 238px;
margin: 30px auto;
border: 1px solid #ccc;
}
.month tr:nth-child(n + 7) td.day{
background-color: #FF85C6;
}
.month tr:nth-child(1) th{
text-align: center;
}
</style>
<table class="month"></table>
<script>
var calendar = {
update: function(year, month) {
this.year = year;
this.month = [
'Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь',
'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'
][month];
var stepDay = new Date(year, month, 1);
stepDay.setDate(stepDay.getDate() - ((stepDay.getDay()||7) - 1));
var lastDay = new Date(stepDay);
lastDay.setDate(lastDay.getDate() + 41);
while (stepDay <= lastDay) {
this.days.push(stepDay.getDate());
stepDay.setHours(24);
}
},
render: function() {
var html = ['<tr>','<tr>','<tr>','<tr>','<tr>','<tr>','<tr>'];
for (var i = 0; i < this.days.length; i++) {
html[i % 7] += '<td class="day">' + this.days[i] ;
}
var title = '<tr><th colspan=7>' + this.year + ', ' + this.month;
this.element.innerHTML = title + html.join('');
}
};
var today = new Date(),
thisYear = today.getFullYear(),
thisMonth = today.getMonth();
calendar.days = ['Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб', 'Вс'];
calendar.element = document.querySelector('.month');
calendar.update(thisYear, thisMonth);
calendar.render();
</script>
</body>
</html>
|
|
|
|