Професионална програма
Loading...
+ Нов въпрос
GodOfGaming avatar GodOfGaming 1 Точки

Programing Basics with Java - 1000 Days After Birth

 Здравейте, направих задачката така, и в eclipse си работи, но judge-a пищи 0/100 и не разбирам какъв е проблема

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;

public class ThousandDaysAfterBirth {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
		String inputDate = scanner.nextLine();
		
		try {
			Date date = formatter.parse(inputDate);
			Calendar calendar = Calendar.getInstance();
			calendar.setTime(date);
			calendar.add(Calendar.DATE, 1000);

			System.out.println(formatter.format(calendar.getTime()));
		} catch (ParseException e) {
			System.out.println("Parse Exception");
		}
	}

}

вади runtime error-и, но еклипса няма проблем с кода и си работи в него, та не знам какво се случва:

Тагове:
0
Programming Basics with Java 27/12/2019 20:47:32
inkarnasion avatar inkarnasion 278 Точки
Best Answer

Здравей, така както гледам проблема ти е заради  Calendar.getInstance() , предполагам че джъдж го забранява от security issue защото е част от security......( getInstance() method of java.security.Provider class is used to return a Signature object that implements the specified signature algorithm. This method traverses the list of registered security Providers, starting with the most preferred Provider. ), и честно казано тая задача не мисля че се изискваше чак такъв advance начин за решаване, да не говорим за try -catch, защо не пробваш по просто решение? Аз си изрових моето от преди,минава си със 100 в джъдж.

 

  String birthDay = scanner.nextLine();

        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("dd-MM-yyyy");
        LocalDate after1000d = LocalDate.parse(birthDay, dateTimeFormatter).plusDays(999);

        System.out.println(dateTimeFormatter.format(after1000d));
0
31/12/2019 09:38:07
GodOfGaming avatar GodOfGaming 1 Точки

Мерси много, доста по-малък код и минава през джъджа.

и честно казано тая задача не мисля че се изискваше чак такъв advance начин за решаване, да не говорим за try -catch, защо не пробваш по просто решение?

Това което ме докара до там беше изписаното в урока под задачата:

Насоки и подсказки

  • Потърсете информация за типовете Date, Calendar и SimpleDateFormat в Java и по-конкретно разгледайте методите Calendar.setTime(date), Calendar.add(countDays) и SimpleDateFormat.format(date). С тяхна помощ може да решите задачата, без да е необходимо да изчислявате дни, месеци и високосни години.

Точно като ровичках из нета споменатите типове и методи от това което успях да намеря се получи мойто решение, и try-catch-а беше задължителен иначе гърмеше още при formatter.parse(inputDate) за ParseException...

Сега получих 100/100, най-сетне мога да продължа нататък :)

1