Loading...
ilieviliyan avatar ilieviliyan 2 Точки

Задача 13.** Пресмятане с дати: 1000 дни на Земята

Колeги имам една молба ако може.

На въпросната задача намерих решения .Опитах да я разбера ,как се получават нещата но нещо не ги разбирам .Методите на

LocalDate , DateTimeFormatter нещо неги разбирам . Четох за тях но уви пак не зацепвам  
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Scanner;

public class Day1000Days {
    public static void main (String[]args){
        Scanner scan = new Scanner(System.in);

        String date = scan.nextLine();
        DateTimeFormatter formatter=DateTimeFormatter.ofPattern("dd-MM-yyyy");
        LocalDate localDate =LocalDate.parse(date,formatter);
        LocalDate result =localDate.plusDays(999);


        System.out.println(formatter.format(result));

 

Това е решението ,което имам .

 

Моля да ми разясни ,някои действията 

 

Благодаря

Тагове:
0
Programming Basics 25/02/2018 16:42:50
Angel_Kalinkov avatar Angel_Kalinkov 111 Точки

Текущата дата я въвеждаш в конзолата като поредица от цифри, но за програмата тя не е дата, дори не е и число, защото е декларирана като String с името date. За да бъде разпознат от програмата като дата, този стринг трябва да бъде парснат като дата чрез класа LocalDate. Това става като създаваш датата localDate, която е равна на парснатия стринг date.

LocalDate localDate = LocalDate.parse(date,formatter);

Датата обаче може да има различен формат и преди това чрез класа DateTimeFormate, задаваш искания в условието на задачата формат.

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy");

След като вече имаш текуща дата, с желания формат и програмата я разпознава като дата от календара, можеш да създадеш нова дата result, като към текущата localDate добавиш, колкото искаш дни.

LocalDate result = localDate.plusDays(999);
0
25/02/2018 17:15:03
Vesso1980 avatar Vesso1980 486 Точки

Ами колега, за да преобразуваш дата, която си получил от тип string като текст в тип данни от клас LocalDate трябва да се парсне с метода  LocalDate.parse();, Точно както би парснал текст "123" за да стане числото 123.Методът приема два параметъра: date - което е стринга и formatter, ти е форматът в който ще приемеш и съхраняваш датите. И се получава  LocalDate.parse(date,formatter);  с formatter "dd-MM-yyyy" мога да приемам стринг като този "01-02-2018". Ако имам формат "dd-MMМ-yyyy" трябва да подам стринг "01-Feb-2018". В зависмост от това под каква форма ти идват датите ти определя какъв фомат ще ползваш. И след като е парсната датата, тя вече не е стринг а от тип дата 01-02-2018 и с методът localDate.plusDays() добяваш дни.

 

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.