powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Помогите, пожайлуста новичну найти ошибку в коде...
7 сообщений из 7, страница 1 из 1
Помогите, пожайлуста новичну найти ошибку в коде...
    #34477682
eugenija
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите, пожайлуста найти ошибку в этом коде.
Программка должна определить, является ли введенная дата правильной. Т.е, в январе, марте, мае, июле августе, октябре и декабре числа дня должны быть не больше 31,
в апреле, июне, сентябре и ноябре не больше 30, а в феврале не больше 28 (или 29 если високосный год.)

(У меня проблемы с выводом результата...Что нужно чтобы возвращал оператор return?????И как это вывести на экран????? )
Код:

Код: plaintext
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.
 public   class  Schaltjahr { 
  
  public   static   boolean  schaltJahrBerechnung ( int  jahr) { 
   return   ((jahr %  100  ==  0 ) && ((jahr %  400  ==  0 )) 
       || ((jahr %  100  !=  0 )) && (jahr %  4  ==  0 )); 
 } 

  public   static   boolean   monatBerechnung( int  tag,  int  monat,  int  jahr) { 
     if  ((monat== 1 )  | (monat== 3 )|(monat== 5 )|(monat== 7 )|(monat== 8 )|(monat== 10 )|(monat== 11 )) { 
      if  (tag<= 31 &tag>= 1 )     { 
       return  true; 
     } 
     else   if  ((monat== 4 )|(monat== 6 )|(monat== 9 )|(monat== 11 ))  
      if  (tag<= 31 &tag>= 1 )     { 
         return  true; 
          } 
     else   if  ((Schaltjahr.schaltJahrBerechnung(jahr)&& monat== 2 )) 
         if  (tag<= 29 &tag>= 1 )     { 
             return  true; 
              } 
         else   if  ((!Schaltjahr.schaltJahrBerechnung(jahr)&& monat== 2 )) 
             if  (tag<= 28 &tag>= 1 )     { 
                 return  true; 
                  } 
            
   } 
    {  return  (tag,  monat, jahr); 
    
    } 
    
    }} 

 public   class  test_schaltjahr1{ 
  
  public   static   void   main(String[]args) { 
  
  
  int  tag= 41 ; 
  int  monat= 2 ; 
  int  jahr= 1900 ; 
  
  
  boolean  schaltJahr=Schaltjahr.schaltJahrBerechnung(jahr); 
 if (schaltJahr) System.out.println(jahr + " ist schaltjahr"); 
 else  {System.out.println(jahr + " ist KEIN schaltjahr"); 
  
  
 //if(schaltJahr) System.out.println(jahr + " ist schaltjahr"); 
 System.out.printf(tag+"."+monat+"."+jahr+" ist gueltige datum"); 
  
  
}}}
...
Рейтинг: 0 / 0
Помогите, пожайлуста новичну найти ошибку в коде...
    #34477721
eugenija
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
задание такое:
нужно ввести какую-то дату (например 1.2.2005)
Прога выведет, что такая дата существует.

А если ты введешь например 31.23.2000 - то получишь ответ, что такой даты не может быть.

Еще нужно учесть, что существуют високосные года - и в них будет не 28 а 29 дней в календаре.




Прога работает, только я не знаю как вывести в return булевые величины (int tag, int monat, int jahr) и указать, true они или false
...
Рейтинг: 0 / 0
Помогите, пожайлуста новичну найти ошибку в коде...
    #34477762
fjord
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зачем так сложно :) используйте GregorianCalendar, там все есть

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
 public   class  Test {

     public   static   void  main(String[] args) {
         int  day =  29 ;
         int  month =  1 ;  // месяцы считаются с 0, т.е. 1 это февраль
         int  year =  1990 ;
        
        GregorianCalendar gcalendar =  new  GregorianCalendar(year, month, day);
        
        /* так можно определить количество дней в заданном году */
        System.out.println(gcalendar.getActualMaximum(gcalendar.DAY_OF_YEAR) + " днейв году");
        
         if (day >  31  || month >  12  || gcalendar.getActualMaximum(gcalendar.DAY_OF_MONTH) != ( new  GregorianCalendar(year, month,  1 ).getActualMaximum(gcalendar.DAY_OF_MONTH))){
            System.out.println("Ошибка введения даты");
        } else {
            System.out.println("Дата конрректна");
        }        
    }
   
}
...
Рейтинг: 0 / 0
Помогите, пожайлуста новичну найти ошибку в коде...
    #34477765
eugenija
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
большое спасибо
...
Рейтинг: 0 / 0
Помогите, пожайлуста новичну найти ошибку в коде...
    #34477946
mijer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вариант:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
 import  java.util.Calendar;

 public   class  Test {
     public   static   void  main(String[] args) {
         int  day =  32 ;
         int  month =  0 ;
         int  year =  2000 ;

        Calendar calendar = Calendar.getInstance();
        calendar.setLenient(false);
        calendar.set(year, month, day);

        String msg = "Дата корректа";
         try  {
            calendar.getTime();
        }  catch  (IllegalArgumentException e) {
            msg = "Ошибка введения даты";
        }

        System.out.println(msg);
    }
}
...
Рейтинг: 0 / 0
Помогите, пожайлуста новичну найти ошибку в коде...
    #34479063
eugenija
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо.
А что делает функция Calendar.getInstance()?? и calendar.setLenient(false);???
...
Рейтинг: 0 / 0
Помогите, пожайлуста новичну найти ошибку в коде...
    #34479412
Фотография hinotf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
public static Calendar getInstance()
Gets a calendar using the default time zone and locale. The Calendar returned is based on the current
time in the default time zone with the default locale.

public void setLenient(boolean lenient)
Specifies whether or not date/time interpretation is to be lenient. With lenient interpretation, a date such as "February 942, 1996" will be treated as being equivalent to the 941st day after February 1, 1996. With strict (non-lenient) interpretation, such dates will cause an exception to be thrown. The default is lenient.


Nai tiruvantel ar varyuvantel i Valar tieyanna nu vilya
Aiya Eärendil Elenion Ancalima!
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Помогите, пожайлуста новичну найти ошибку в коде...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]