[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