Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
 Аватар для AnonymC
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390

Алгоритм дня недели для календаря

17.03.2016, 09:01. Показов 3527. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе утро уважаемые программисты. Есть календарь года, но без дней недели. Когда программа выводит месяца года, она выводит каждый первый день с начала понедельника. Вот мой код. жду ваших алгоритмов

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<script src="script.js" type="text/javascript"></script>
 
 
 
        <script>
            document.write('<table><tr>');
            for(var i=1;i<13;i++)
            {
                document.write('<td>');
                document.write("<b>" + MonthName(i) + "</b><br>");
                MonthPrint(i);
                document.write('</td>');
            }
            document.write('</tr></table>');
        </script>
JavaScript
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
//    /////// MONTH CREATING
//    var jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec;     //12 matrx
//    jan=feb=mar=apr=may=jun=jul=aug=sep=oct=nov=dec=new Array();
//    ////// MONTH INITIALIZING
//    for(var i=1; i<=31;i++) //31 days
//        jan[i]=mar[i]=may[i]=jul[i]=aug[i]=oct[i]=dec[i]=i;
//    for(var i=1; i<=30;i++) //30 days
    //        apr[i]=jun[i]=sep[i]=nov[i]=i;
    //    for(var i=1;i<29;i++)
        //        feb[i]=i;
        //    ////// END OF INIT
 
 
        function NowDay(){
            var day, now;
            now = new Date();
            day=now.getDate();
            now=null;
 
            return day;
            }
 
        function NowMonth(){
            var month, now;
            now = new Date();
            month=now.getMonth()+1;
            now=null;
            return month;
            }
 
        function MonthName(month){
            if(month==1)
            return "January";
            if(month==2)
            return "February";
            if(month==3)
            return 'March';
            if(month==4)
            return "April";
            if(month==5)
            return "May";
            if(month==6)
            return "June";
            if(month==7)
            return "Jule";
            if(month==8)
            return "August";
            if(month==9)
            return "September";
            if( month==10)
            return "October";
            if(month==11)
            return "November";
            if( month==12)
            return "December";
            }
 
        function GetMonthDays(month){
            if(month==1)
            return 31;
            if(month==2)
            return 29;
            if(month==3)
            return 31;
            if(month==4)
            return 30;
            if(month==5)
            return 31;
            if(month==6)
            return 30;
            if(month==7)
            return 31;
            if(month==8)
            return 31;
            if(month==9)
            return 30;
            if( month==10)
            return 31;
            if(month==11)
            return 30;
            if( month==12)
            return 31;
            }
 
        function MonthPrint(month){
            var i;
 
            var week=1;
            for(i=1;i<=GetMonthDays(month); i++)
            {
            if(week == 8) {
 
            document.write("</br>");
            week=1;
            }
            if(i===NowDay() && month===NowMonth())
            document.write('<b>' + i + ' ' + '</b>');
            else
            document.write(i + ' ');
            week++;
            }
            }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.03.2016, 09:01
Ответы с готовыми решениями:

Расписание занятий в зависимости от дня недели
Привет всем! Хотел бы узнать как это реализовать: Есть сайт определенной специальности, в специальном блоке должно отображаться расписание...

вывод дня недели на протяжении года
нужно написать програму, которая будет выводить число и месяц дня недели, которого задаст пользователь на протяжении года. Тоесть естли я...

Смена текста в зависимости от дня недели и времени
Всем доброго дня. Есть необходимость выводить текст в зависимости от дня недели и времени что то вроде Расписания. нашел как...

10
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
17.03.2016, 09:31
извините, но у вас это не алгоритм, это бред

на каком языке вы, говорите, ранее программировали?
что это за язык, неужели есть такой, где нет массивов?
изучите понятие массива (Array) в яваскрипте -- и 99% вашего "алгоритма" просто испарятся, как их и не было
0
 Аватар для AnonymC
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
17.03.2016, 10:45  [ТС]
kalabuni, да,я знаю что это бред. Но это я сам писал. И стоит учесть что я только вчера начал знакомство с этим языком. Для начала не плохо,думаю. Теперь я поставил перед собой цель написать календарик. Я почти закончил, остается только решать вопрос по дням недели. Подключил и бутстрап, я его кстати тоже вчера освоил.

JavaScript
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
<script src="script.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="style.css">
 
<link rel="stylesheet" href="bootstrap.css" type="text/css">
<link rel="stylesheet" href="bootstrap-theme.css" type="text/css">
<div class="small-cal" >wdwdwd</div>
        <script>
 
 
            document.write(' <div class="container">');
            for(var i=1;i<13;i++)
            {
                document.write('<div class="month col-lg-2 col-md-3 col-sm-4 col-xs-6">');
                document.write('<div class="monthname">' + MonthName(i) + "</div><br>");
                var week=1;
                for(var j=1;j<=GetMonthDays(i); j++)
                {
                    if(week == 8) {
 
                        document.write("</br>");
                        week=1;
                    }
                    if(j===NowDay() && i===NowMonth())
                        document.write('<span class="today">' + j + ' ' + '</span>');
                    else
                        document.write(j + ' ');
                    week++;
                }
                document.write('</div>');  //month block
 
 
                if(i==6)
                    document.write("<br>")
            }
            document.write('</div>'); //container
 
 
        </script>
Добавлено через 22 секунды
JavaScript
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
@media all and (max-height:  417px){
 
       .month{
          display: none;
    }
 
    .small-cal{
        display: block!important;
    }
}
 
 
 
.monthname{
    background-color: rgba(41, 178, 215, 0.13);
 
    height: 20px;
    font-weight: bold;
    color: orange;
    border-bottom:   1px dotted red;
}
 
.today{
    color: red;
}
.small-cal{
    display: none;
    width: 190px;
    height: 190px;
    background-color: #ebf174;
    position: absolute;
}
.month{
    text-align: left;
    padding: 0 !important;
    height: auto;
    border:   1px dotted red;
    position: relative;
    float: left;
    background-color: rgba(41, 178, 215, 0.13);
    width: 189px;
}
Добавлено через 3 минуты
Помогите пожалуйста с этим вопросом. Я понимаю что это плохой код, но я только учу, знакомлюсь, сделаю эту задачу, тогда и начну использовать готовые функции работающие с системой. Хотя эту проблему думаю без сис-ных функций не решать. Во всяком случае надеюсь что поможете.
0
 Аватар для HarizZ
10 / 10 / 10
Регистрация: 23.07.2015
Сообщений: 55
17.03.2016, 11:31
Как вариант можете посмотреть это:

HTML5
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
<html>
 
<head>
  <style>
    table {
      border-collapse: collapse;
    }
 
    td,
    th {
      border: 1px solid black;
      padding: 3px;
      text-align: center;
    }
 
    th {
      font-weight: bold;
      background-color: #E6E6E6;
    }
  </style>
  <meta charset="utf-8">
</head>
 
<body>
 
  <div id="calendar"></div>
 
</body>
 
</html>
JavaScript
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
    function createCalendar(id, year, month) {
      var elem = document.getElementById(id);
 
      var mon = month - 1;
      var d = new Date(year, mon);
 
      var table = '<table><tr><th>пн</th><th>вт</th><th>ср</th><th>чт</th><th>пт</th><th>сб</th><th>вс</th></tr><tr>';
 
      for (var i = 0; i < getDay(d); i++) {
        table += '<td></td>';
      }
 
      while (d.getMonth() == mon) {
        table += '<td>' + d.getDate() + '</td>';
 
        if (getDay(d) % 7 == 6) { 
          table += '</tr><tr>';
        }
 
        d.setDate(d.getDate() + 1);
      }
 
      if (getDay(d) != 0) {
        for (var i = getDay(d); i < 7; i++) {
          table += '<td></td>';
        }
      }
 
      table += '</tr></table>';
 
      elem.innerHTML = table;
    }
 
    function getDay(date) {
      var day = date.getDay();
      if (day == 0) day = 7;
      return day - 1;
    }
 
 
 
    createCalendar("calendar", 2016, 3) // =====> создаем сам календарь
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
17.03.2016, 12:16
тема "календаря" -- одна из самых популярных
а в "готовых решениях" таковой почему-то нет

посмотрите эту тему -- я там давал рабочий код с подробными комментами
0
18.03.2016, 05:50

Не по теме:

Цитата Сообщение от kalabuni Посмотреть сообщение
что это за язык, неужели есть такой, где нет массивов?
В PureBasic массивы реализованы так, что ими просто ни кто не пользуется.

0
388 / 275 / 76
Регистрация: 19.09.2011
Сообщений: 828
18.03.2016, 10:18
http://output.jsbin.com/qojavi

JavaScript
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
var days = ["пн", "вт", "ср", "чт", "пт", "сб", "вс"];
var months = [
  "Январь",
  "Февраль",
  "Март",
  "Апрель",
  "Май",
  "Июнь",
  "Июль",
  "Август",
  "Сентябрь",
  "Октябрь",
  "Ноябрь",
  "Декабрь"
];
 
var generateCalendarTable = function(date){
  var nowDate = new Date().getDate();
  var nowMonth = new Date().getMonth();
  var month = date.getMonth();
 
  date.setDate(1);
  if(date.getDay() !== 0){
    date.setDate(-date.getDay() + 2);
  }else{
    date.setDate(-5);
  }
  
  var table = document.createElement("table");
  
  table.insertRow();
  days.forEach(function(day){
    var cell = table.rows[table.rows.length - 1].insertCell();
    cell.textContent = day;
  });
  
  do{
    var row = table.insertRow();
    for(var w = 0; w < 7; w++){
      var cell = row.insertCell();
      
      cell.textContent = date.getDate();
      if(date.getMonth() !== month){
        cell.style.opacity = 0.3;
      }
 
      if(nowMonth === date.getMonth() && nowDate === date.getDate()){
        cell.style.background = "rgba(0, 0, 0, 0.3)";
      }
      date.setDate(date.getDate() + 1);
    }
  } while(date.getMonth() === month);
  
  var header = table.insertRow(0).insertCell();
  header.textContent = months[month];
  header.setAttribute("colspan", 7);
  header.setAttribute("align", "center");
  
  return table;
};
 
for(var m = 0; m < 12; m++){
  var date = new Date();
  date.setDate(1);
  date.setMonth(m);
  document.body.appendChild(generateCalendarTable(date));
}

Цитата Сообщение от kalabuni Посмотреть сообщение
посмотрите эту тему -- я там давал рабочий код с подробными комментами
там настолько плохой код, что мне показалось, что его специально писали плохим. то что ты пишешь кривой код - это троллинг какой то?
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
18.03.2016, 10:46
вы перепутали: сегодня не "день тыкающих хамов"

сначала научитесь "Уважительно относиться к другим участникам форума" (пункт 3.1. Правил), и только потом обращайтесь к ним с вопросами
0
388 / 275 / 76
Регистрация: 19.09.2011
Сообщений: 828
18.03.2016, 13:39
Цитата Сообщение от kalabuni Посмотреть сообщение
вы перепутали
http://new.gramota.ru/spravka/... -rubric-88
держи братишка, вы пишется с маленькой буквы если это местоимение во множественном числе.
Вы пишется с большой буквы если это местоимение в единственном числе.

Местоимения Вы и Ваш пишутся с прописной (большой) буквы как форма вежливого обращения к одному лицу. При обращении к нескольким лицам следует писать вы и ваш со строчной буквы.
ты написал "вы" с маленькой буквы, то есть конкретно ко мне ты не обращался. в этой теме отписались еще 3 человека, к кому из нас ты обращался? или ты говоришь, мол все в этой теме думали, что сегодня "день тыкающих хамов"?
1
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
19.03.2016, 07:55
вы опять "ищете в тёмной комнате чёрную кошку, которой там нет", и опять хамите

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

а того, к кому я обращался, вычислить легко -- в этой теме отметился только один хам, который "тыкает"


Taatshi, интересно, когда этот хам напишет в ваш адрес: "ты, сеструха", вы его тоже поблагодарите?

модератор, поощряющий хамство -- это вообще-то нонсенс, Елена
0
19.03.2016, 20:48

Не по теме:

Цитата Сообщение от nubideus Посмотреть сообщение
держи братишка, вы пишется с маленькой буквы если это местоимение во множественном числе.
по вашей же ссылке:
Q: Можно ли при обращении к одному человеку писать вы, ваш с маленькой буквы?
A: Употребление местоимения вы вместо ты при обращении к одному лицу само по себе уже представляет проявление уважительного отношения к этому лицу. Окончательное решение о написании Вы с прописной (для подчеркивания этого уважительного отношения) принимает автор текста.



 Комментарий модератора 
А взаимные оскорбления прекращаем. Предупреждение.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.03.2016, 20:48
Помогаю со студенческими работами здесь

Определите количество дней до вашего дня рождения и на какой день недели он выпадает
Определите количество дней до вашего дня рождения и на какой день недели он выпадает

Реализовать динамическое построение таблицы календаря в зависимости от дня недели
1.Реализовать в РНР динамическое построение таблицы календаря в зависимости от дня недели. 2.Реализовать в РНР форму для чата. ...

Алгоритм нахождения дня недели по номеру дня в месяце
Напишите программу.Алгоритм нахождения дня недели по номеру дня в месяце. Июль текущего года.

Написать программу, которая запрашивает у пользователя номер дня недели, затем выводит название дня недели
Написать программу, которая запрашивает у пользователя номер дня недели, затем выводит название дня недели или сообщение об ошибке, если...

Найти номер дня недели К-го дня года, если в этом году 1 января было днем недели с номером N
Дни недели пронумерованы следующим образом: 0 - воскресенье, 1 - понедельник, 2 - вторник, ..., 6 - суббота. Даны целые числа K в...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью 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
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru