2017-02-23 25 views
0

Я новичок в JavaScript (и в основном новичок в программировании в целом). Это задание, как указано в названии, заключалось в том, чтобы вводить данные за год и первый день года через подсказку пользователя и создавать календарь в виде таблицы HTML.Напишите программу, которая предложит пользователю ввести год и первый день года, затем отобразит календарь, построив HTML

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

Мой стол и лоб в настоящее время кровавые, и я был бы очень признателен за любую помощь в том, что я делаю неправильно, и/или отсутствует.

Ниже приведены как мой JS код и HTML .:

"use strict"; 
function getCalendar(year, day) 
{ 
     var firstDayOfMonth; 
     var result; 

     //Find a number of the first day 
     switch (day) 
     { 
      case 0 : firstDayOfMonth = "Sunday"; break; 
      case 1 : firstDayOfMonth = "Monday"; break; 
      case 2 : firstDayOfMonth = "Tuesday"; break; 
      case 3 : firstDayOfMonth = "Wednesday"; break; 
      case 4 : firstDayOfMonth = "Thursday"; break; 
      case 5 : firstDayOfMonth = "Friday"; break; 
      case 6 : firstDayOfMonth = "Saturday"; break; 
      default : result = "<p>Error: there is no such day of week</p>"; 
     } 

     //Whether the year is a leap year 
     function isLeapYear(year) 
     { 
      return ((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0); 
     } 


     //Display the calendar 
     for (var month = 1; month <= 12; month++) 
     { 

      //Proper spacing between months 
      if (firstDayOfMonth == 0) 
       result += "<br />"; 
      else 
       result += "<br /><br />"); 

      //Get name of the month 
      var monthString = ""; 
      switch (month) 
      { 
       case 1 : monthString = "January"; break; 
       case 2 : monthString = "February"; break; 
       case 3 : monthString = "March"; break; 
       case 4 : monthString = "April"; break; 
       case 5 : monthString = "May"; break; 
       case 6 : monthString = "June"; break; 
       case 7 : monthString = "July"; break; 
       case 8 : monthString = "August"; break; 
       case 9 : monthString = "September"; break; 
       case 10 : monthString = "October"; break; 
       case 11 : monthString = "November"; break; 
       case 12 : monthString = "December"; break; 
      } 


      //Display the heading of the month 
      result += "<table border='1'><tr><th>" + " " + monthString + " " + year + "</th></tr><tr><th>Sun</th><th>Mon</th><th>Tue</th><th>Wed</th><th>Thu</th><th>Fri</th><th>Sat</th></tr>"; 

      //Find the length of the month 
      var length = 30 + ((month + (month/8.0)) % 2); 
      if (month == 2) //Adjust February length 
       if (isLeapYear) 
        length -= 1; //Leap year 
       else 
        length -= 2; //Non-leap year 

      var counter = 1; //Counter to determine end of the week 

      //Display blank space before first day 
      for (var i = 0; i < firstDayOfMonth; i++) 
      { 
       result += "<td>" "</td>"; 
       counter++; 
      } 

      //Display days 
      for (var day = 1; day <= length; day++) 
      { 
       result += "<td>" + day + "</td>"; 
       result += (counter++ % 7 != 0) ? " " : "<br />"); 
      } 

      //Determine the first day of the next month 
      firstDayOfMonth = (firstDayOfMonth + length) % 7; 

     } 
     result += "</table>"; 
    return result; 
} 

HTML:

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
    <title>Calendar</title> 
<script language="JavaScript" type="text/javascript" src="getCalendar.js"> 
</script> 
</head> 

    <body> 
<script language="JavaScript" type="text/javascript"> 
var yearInt = parseInt(prompt("Enter year", 2016)); 
var dayInt = parseInt(prompt("Enter the first day of the year. 0 for Sunday, 1 for Monday, ..., and 6 for Saturday", 5)); 
document.writeln(getCalendar(yearInt, dayInt)); 

</script> 
    </body> 
</html> 

ответ

0

Они в основном синтаксический erros!

пропустил "" + "" здесь

result += "<td>" "</td>"; 

ЭКСТРА брекеты - ) в следующих двух строках

result += "<br /><br />)"; 
result += (counter++ % 7 != 0) ? " " : "<br />)"; 

var yearInt = parseInt(prompt("Enter year", 2016)); 
 
var dayInt = parseInt(prompt("Enter the first day of the year. 0 for Sunday, 1 for Monday, ..., and 6 for Saturday", 5)); 
 
document.writeln(getCalendar(yearInt, dayInt)); 
 

 

 

 
    "use strict"; 
 
function getCalendar(year, day) 
 
{ 
 
     var firstDayOfMonth; 
 
     var result; 
 

 
     //Find a number of the first day 
 
     switch (day) 
 
     { 
 
      case 0 : firstDayOfMonth = "Sunday"; break; 
 
      case 1 : firstDayOfMonth = "Monday"; break; 
 
      case 2 : firstDayOfMonth = "Tuesday"; break; 
 
      case 3 : firstDayOfMonth = "Wednesday"; break; 
 
      case 4 : firstDayOfMonth = "Thursday"; break; 
 
      case 5 : firstDayOfMonth = "Friday"; break; 
 
      case 6 : firstDayOfMonth = "Saturday"; break; 
 
      default : result = "<p>Error: there is no such day of week</p>"; 
 
     } 
 

 
     //Whether the year is a leap year 
 
     function isLeapYear(year) 
 
     { 
 
      return ((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0); 
 
     } 
 

 

 
     //Display the calendar 
 
     for (var month = 1; month <= 12; month++) 
 
     { 
 

 
      //Proper spacing between months 
 
      if (firstDayOfMonth == 0) 
 
       result += "<br />"; 
 
      else 
 
       result += "<br /><br />"; 
 

 
      //Get name of the month 
 
      var monthString = ""; 
 
      switch (month) 
 
      { 
 
       case 1 : monthString = "January"; break; 
 
       case 2 : monthString = "February"; break; 
 
       case 3 : monthString = "March"; break; 
 
       case 4 : monthString = "April"; break; 
 
       case 5 : monthString = "May"; break; 
 
       case 6 : monthString = "June"; break; 
 
       case 7 : monthString = "July"; break; 
 
       case 8 : monthString = "August"; break; 
 
       case 9 : monthString = "September"; break; 
 
       case 10 : monthString = "October"; break; 
 
       case 11 : monthString = "November"; break; 
 
       case 12 : monthString = "December"; break; 
 
      } 
 

 

 
      //Display the heading of the month 
 
      result += "<table border='1'><tr><th>" + " " + monthString + " " + year + "</th></tr><tr><th>Sun</th><th>Mon</th><th>Tue</th><th>Wed</th><th>Thu</th><th>Fri</th><th>Sat</th></tr>"; 
 

 
      //Find the length of the month 
 
      var length = 30 + ((month + (month/8.0)) % 2); 
 
      if (month == 2) //Adjust February length 
 
       if (isLeapYear) 
 
        length -= 1; //Leap year 
 
       else 
 
        length -= 2; //Non-leap year 
 

 
      var counter = 1; //Counter to determine end of the week 
 

 
      //Display blank space before first day 
 
      for (var i = 0; i < firstDayOfMonth; i++) 
 
      { 
 
       result += "<td>" +"</td>"; 
 
       counter++; 
 
      } 
 

 
      //Display days 
 
      for (var day = 1; day <= length; day++) 
 
      { 
 
       result += "<td>" + day + "</td>"; 
 
       result += (counter++ % 7 != 0) ? " " : "<br />"; 
 
      } 
 

 
      //Determine the first day of the next month 
 
      firstDayOfMonth = (firstDayOfMonth + length) % 7; 
 

 
     } 
 
     result += "</table>"; 
 
    return result; 
 
}
<html xmlns="http://www.w3.org/1999/xhtml"> 
 
<head> 
 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
 
    <title>Calendar</title> 
 
<script language="JavaScript" type="text/javascript" src="getCalendar.js"> 
 
</script> 
 
</head> 
 

 
    <body> 
 
    </body> 
 
</html>

Когда вы получите ошибку в javascript, попробуйте использовать консоль!

Чтобы открыть выделенный консоли панели, либо:

  • Нажмите Ctrl + Shift + J (Windows/Linux) или Cmd + Opt + J (Mac).
  • Если DevTools уже открыт, нажмите кнопку «Консоль». Когда вы открываете панель консоли, ящик консоли сворачивается автоматически.

Консоль JavaScript предоставляет две основные функции для разработчиков, тестирующих веб-страницы и приложения. Это место, где:

  • Запишите диагностическую информацию в процессе разработки.
  • Приглашение оболочки, которое может использоваться для взаимодействия с документом и DevTools.

Надеюсь, это поможет!

+0

Удивительно, это работает! Спасибо! Наверное, я слишком долго смотрел на нее ... Спасибо также за совет на консоли! Я не уверен, почему он возвращает «undefined» перед таблицей, поэтому мне придется изучить это, а также форматирование самой таблицы. – Vermillion