Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.10.2011, 21:03
Новичок на форуме
Отправить личное сообщение для Cepac135 Посмотреть профиль Найти все сообщения от Cepac135
 
Регистрация: 16.10.2011
Сообщений: 1

функция проверки, что в строке
написал код для нахождения даты
задание было Написать функцию, которая проверяет, что в строке, переданной в качестве аргумента, передается дата в формате "дд.мм.гг". Если это так, то функция должна вернуть день недели введенного числа, в противном случае - "Error".
но не могу понять как вывести день недели введёного числа пробовал и if но выдаёт ошибку постоянно ...

<html>
<head>
<title>Сегодняшняя дата</title>
<script language="JavaScript">
function uznat(value)
{
time=new Date();
month=(time.getMonth() + 1);
date=time.getDate();
year=time.getYear();

var x= date
if (x != 16) {
return "Error";
} else {
return x;
}
}
</script>
</head>
<body>
<form name="Test">
<input type="text" name="In">
<input type="text" name="Result">
<input type="button" name="Enter" value="День" onclick="document.Test.Result.value=uznat(document .Test.In.value)">
</form>
</body>
</html>

Последний раз редактировалось Cepac135, 16.10.2011 в 22:01.
Ответить с цитированием
  #2 (permalink)  
Старый 16.10.2011, 22:48
Аватар для DreamTheater
Профессор
Отправить личное сообщение для DreamTheater Посмотреть профиль Найти все сообщения от DreamTheater
 
Регистрация: 15.02.2011
Сообщений: 471

function getDayOfWeek (date) {
    var dayOfWeek;

    date = date.match(/(\d{2})\.(\d{2})\.(\d{4})/);

    switch (new Date(date[3], date[2] - 1, date[1]).getDay()) {
        case 0:
            dayOfWeek = 'Воскресенье';
            break;
        case 1:
            dayOfWeek = 'Понедельник';
            break;
        case 2:
            dayOfWeek = 'Вторник';
            break;
        case 3:
            dayOfWeek = 'Среда';
            break;
        case 4:
            dayOfWeek = 'Четверг';
            break;
        case 5:
            dayOfWeek = 'Пятница';
            break;
        case 6:
            dayOfWeek = 'Суббота';
            break;
    }

    alert(dayOfWeek);
}

getDayOfWeek(prompt('Введите дату в формате dd.mm.yyyy'));
Ответить с цитированием
  #3 (permalink)  
Старый 16.10.2011, 23:16
Аватар для cyanidesign
Новичок на форуме
Отправить личное сообщение для cyanidesign Посмотреть профиль Найти все сообщения от cyanidesign
 
Регистрация: 13.10.2011
Сообщений: 4

function check(val) {
    var dateMatch = /^(0[1-9]|[12][0-9]|3[01])\.(0[1-9]|1[012])\.(\d{2})$/;
    matchResult = val.match(dateMatch);
    if (matchResult) {
      var date = new Date(matchResult[3], matchResult[2] - 1, matchResult[1]);
      var day = date.getDay();
      return day;
    } else {
      throw new Error('Illegal date format, ought to be DD.MM.YY');
    }
  }


Чуть более усложненный вариант регекспа, сразу идет проверка на валидность даты (число 1-31, месяц 1-12). При разборе результата следует учесть, что нумерация дней недели идет с 0 и начинается с воскресенья, а при вводе даты в формате dd.mm.yy - год до 50го будет интерпретирован как 20XX, больше 50го, как 19XX, так что желательно вводить полный год (подправив регексп) (\d{4}).

Последний раз редактировалось cyanidesign, 16.10.2011 в 23:18. Причина: Поправил код
Ответить с цитированием
  #4 (permalink)  
Старый 14.11.2019, 15:13
Новичок на форуме
Отправить личное сообщение для klavishnaya_ass Посмотреть профиль Найти все сообщения от klavishnaya_ass
 
Регистрация: 14.11.2019
Сообщений: 1

Vot eshe 1 sposob
<html>
<head>
<script>
function getDayOfWeek() {
var dayOfWeek;
var s = document.getElementById("in1").value;
var date = s.split(".");
console.log(date);
if(isNaN(date[0])==true || parseInt(date[0])>31 || parseInt(date[0])<1)
{document.getElementById("in2").value="error";
return;}
if(isNaN(date[1])==true || parseInt(date[1])>12 || parseInt(date[1])<1)
{document.getElementById("in2").value="error";
return;}
if(isNaN(date[2])==true || parseInt(date[2])>2040 || parseInt(date[2])<1)
{document.getElementById("in2").value="error";
return;}
switch (new Date(date[2], date[1]-1 , date[0]).getDay()) {
case 0:
dayOfWeek = 'Воскресенье';
break;
case 1:
dayOfWeek = 'Понедельник';
break;
case 2:
dayOfWeek = 'Вторник';
break;
case 3:
dayOfWeek = 'Среда';
break;
case 4:
dayOfWeek = 'Четверг';
break;
case 5:
dayOfWeek = 'Пятница';
break;
case 6:
dayOfWeek = 'Суббота';
break;
}
document.getElementById("in2").value=dayOfWeek;
}
</script>
</head>
<body >
<form name="Test">
<input type="text" name="In" id ="in1"><br>
<input type="button" name="Enter" value="День" onclick="getDayOfWeek();">
<input type="text" name="Result" id="in2">
</form>
</body>
</html>
Ответить с цитированием
  #5 (permalink)  
Старый 14.11.2019, 15:27
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

klavishnaya_ass,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Баги Opera пишем сюда devote Оффтопик 101 08.08.2013 05:56
функция не успевает Sadist_dead Элементы интерфейса 22 02.10.2011 19:00
body.innerhtml - что за чертовщина? andy_quarry Ваши сайты и скрипты 6 19.07.2011 01:41
Сторонние библиотеки - быть или не быть? IIIEPJIOK Оффтопик 64 21.03.2009 19:39