Пресмятане с дати - 1000 дни на Земята
Търсих доста информация за задачата и стигнах до тук ама не знам как да продължа и ми дава грешка може ли някой да ми помогне.
Ето го и кода: http://prntscr.com/iea9nn
Търсих доста информация за задачата и стигнах до тук ама не знам как да продължа и ми дава грешка може ли някой да ми помогне.
Ето го и кода: http://prntscr.com/iea9nn
Здравей,
Мисля, че си прекалил с import...
Трябва ти един LocalDate, 2 if и решението ти е готово.
LocalDate d = LocalDate.parse(birthday, DateTimeFormatter.ofPattern(format)).plusDays(999);
String day = String.valueOf(d.getDayOfMonth());
if (Integer.valueOf(day) < 10){
day = "0" + day;
}
String month = String.valueOf(d.getMonthValue());
if (Integer.valueOf(month) < 10){
month = "0" + month;
}
String year = String.valueOf(d.getYear());
Моя пример, само не съм копирал началото и края на кода. Мисля, че ще се справиш :)
Благодаря ви :)
import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.Scanner; public class DateTest { public static void main(String[] args) { Scanner scan = new Scanner(System.in); String birthday = scan.nextLine(); String format = "dd-MM-yyyy"; LocalDate d = LocalDate.parse(birthday, DateTimeFormatter.ofPattern(format)).plusDays(999); String day = String.valueOf(d.getDayOfMonth()); if (Integer.valueOf(day) < 10) { day = "0" + day; } String month = String.valueOf(d.getMonthValue()); if (Integer.valueOf(month) < 10) { month = "0" + month; } String year = String.valueOf(d.getYear()); System.out.printf("%s-%s-%s", day, month, year); } }Мисля че това е кода поне работи но judge не ми го приема ? помощ
http://prntscr.com/iebdzj
Кода е като моя, по - скоро да го пробваш пак може да е дал judge пак проблем, че днес като гледам хората се оплакваха и от това, че не излиза нищо в judge.
А защо добавяте 999 дни, а не 1000?
Защото като го тествах с 1000, ми се разминаваше с един ден и затова реших да го намаля на 999 :)
Абе то, и аз така направих :) Ама на изпита нали няма да виждаме верния отговор!
Би трябвало да се вижда не съм много сигурен...
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.Scanner; public class daysTodate { public static void main(String[] args) throws ParseException { System.out.print("Please input your date of birthday with - between characters:"); Scanner sc=new Scanner(System.in); String d = sc.nextLine(); SimpleDateFormat sdf=new SimpleDateFormat("dd-MM-yyyy"); Date date = sdf.parse(d); Calendar c = GregorianCalendar.getInstance(); c.setTime(date); c.add(Calendar.DATE, 1000); date = c.getTime(); System.out.println(sdf.format(date)); }Сорс кода ти работи перфектно при мен. Само си забравил последната }. Тази която затваря класа. И (Calendar.DATE, 1000) явно трябва да е 999. С твоя код се постига добро време за изпълнение на програмата. Аз пробвах с описаните напътствия във файла с условията, и кода ми беше:
Дава верни резултати, когато го изпълнявам при мен и като код е по-малко. Но има проблем с позволеното време за изпълнение в Judge системата. Там позволеното време за тази задача е 100 ms, а тестовете с моя код отнемат между 90 и 135 ms. Така някои тестове минават(тези които са под 100 ms), но повечето фейлват с Тест №0 (Недостатъчно време).