[Programing Basics] [Java] Birthday task
Здравейте, задачата е следната:
Задача: ** пресмятане с дати - 1000 дни на Земята
Напишете програма, която въвежда рождена дата във формат dd-MM-yyyy и пресмята
датата, на която се навършват 1000 дни от тази рождена дата и я отпечатва в същия формат.
Примерен вход и изход
Вход
25-02-1995
Изход
21-11-1997
Използвах два подхода при решаване:
Метод 1:
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Scanner;
public class ThousandDaysOnEarth { public static void main(String []args) throws ParseException { Scanner scanner = new Scanner(System.in); SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy"); String date = scanner.nextLine(); Date converted = dateFormat.parse(date); Calendar calendar = Calendar.getInstance(); calendar.setTime(converted); calendar.add(Calendar.DATE, 1000); String convertedDate = dateFormat.format(calendar.getTime()); System.out.println(convertedDate); } } Метод 2:
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Scanner; public class ThousandDaysOnEarth2 { public static void main(String []args){ Scanner scanner = new Scanner(System.in); String date = scanner.nextLine(); SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy"); Calendar calendar = Calendar.getInstance(); try { calendar.setTime(dateFormat.parse(date)); } catch(ParseException e){ e.printStackTrace(); } calendar.add(Calendar.DATE, 1000); String convertedDate = dateFormat.format(calendar.getTime()); System.out.println(convertedDate); } } И двата метода в IDE-то си работят, но когато се опитвам да тествам в Judge, ми бие компилационни error-и.
Exception in thread "main" java.lang.ExceptionInInitializerError at java.base/sun.util.calendar.ZoneInfoFile.getZoneInfo(ZoneInfoFile.java:736) at java.base/sun.util.calendar.ZoneInfoFile.getZoneInfo(ZoneInfoFile.java:376) at java.base/sun.util.calendar.ZoneInfoFile.getZoneInfo0(ZoneInfoFile.java:139) at java.base/sun.util.calendar.ZoneInfoFile.getZoneInfo(ZoneInfoFile.java:115) at java.base/sun.util.calendar.ZoneInfo.getTimeZone(ZoneInfo.java:581) at java.base/java.util.TimeZone.getTimeZone(TimeZone.java:578) at java.base/java.util.TimeZone.setDefaultZone(TimeZone.java:683) at java.base/java.util.TimeZone.getDefaultRef(TimeZone.java:654) at java.base/java.util.TimeZone.getDefault(TimeZone.java:643) at java.base/java.util.Calendar.defaultTimeZone(Calendar.java:1679) at java.base/java.util.Calendar.getInstance(Calendar.java:1660) at java.base/java.text.SimpleDateFormat.initializeCalendar(SimpleDateFormat.java:675) at java.base/java.text.SimpleDateFormat.<init>(SimpleDateFormat.java:619) at java.base/java.text.SimpleDateFormat.<init>(SimpleDateFormat.java:598) at ThousandDaysOnEarth.main(ThousandDaysOnEarth.java:10) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:564) at _$SandboxExecutor.main(_$SandboxExecutor.java:38) Caused by: java.lang.SecurityException: Not allowed: java.lang.RuntimePermission at _$SandboxSecurityManager.checkPermission(_$SandboxExecutor.java:107) at java.base/java.lang.SecurityManager.checkLink(SecurityManager.java:621) at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:870) at java.base/java.lang.System.loadLibrary(System.java:1875) at java.base/java.util.zip.ZipUtils.lambda$loadLibrary$0(ZipUtils.java:280) at java.base/java.security.Acces
Мм тествах го, но пак бие компилационнен error:
https://judge.softuni.bg/Account/Login?ReturnUrl=%2FContests%2FSubmissions%2FView%2F9665642%3Ffbclid%3DIwAR11UQzjnDzaPw8aBmAJyoxQU-yF0HCrE8n_IYiJBZrYAEcXc8SEcyXHAPY
Аз пуснах тук https://judge.softuni.bg/Contests/Practice/Index/649#12
Аз го пуснах в линка от книгата, явно има промени и за това така се е получило. Понеже вчера там пусках задачата с аквариума и тя мина. :D