Aktywne Wpisy

Imperator_Wladek +946
XDDDDDDDDDDDDD
#tvpis
#tvpis

Damasweger +190
Kiedy ludzie pytają mnie, co mnie uszczęśliwia, odpowiadam: cheddar. Nadser wśród nabiału, gigachad wśród jedzenia. Ale nie jakiś biedacki z mlekovity, Kerrygold Vintage to minimum przyzwoitej jakości, a najlepiej dołożyć i kupić coś porządnego, jak Cathedral City. Twardość, kruchość, kremowy smak to kompozycja cech, jakie powinno mieć idealne jedzenie. Dobry jakościowo chleb, świeże, wiejskie masło, cheddar. Prostota i piękno. Nic mnie tak nie pobudza z rana, żadna kawa, yerba czy zielona herbata.




https://pastebin.com/TJVCd2W9
Takie coś finalnie wyszło, dzięki za pomoc wszystkim, nie wiem jedynie czym zastąpić te przestarzałe get Year, poza tym działa.
Byłbym również wdzięczny za pomoc jeśli chodzi o testy jednostkowe, tzn. co testować i jak to ugryźć, bo czytam sobie teraz o tym ale nigdy testów nie pisałem.
wywal metody statyczne, i co do języka to może warto przerzucić się ze starych dat na te nowsze (LocalDateTime) - jak widzisz dostajesz warningi, że "deprecated", do czytania plików są też
StringToUserConverter {
public User convert(String line) {
String[] attr = line.split(",");
return new User(attr[0], attr[1], itp);
}
i wtedy do takiej klasy możesz sobie napisać test
np.
StringToUserConverterTest {
private final StringToUserConverter converter = new StringToUserCOnverter();
@Test
public void convertTest() throws Exception {
User user = converter.convert("jan,kowalski,555-123-546,2000-01-01");
assertEquals("jan", user.getFirstName());
itp.
}}
// obliczanie wieku
private static Integer obliczWiek(String dataUrodzenia) throws ParseException {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate urodziny = LocalDate.parse(dataUrodzenia, formatter);
LocalDate teraz = LocalDate.now();
Integer wiek = teraz.getYear() - urodziny.getYear();
return wiek;
}
Co do programu nie bardzo wiem jak to przebudować żeby nie przestało działać, a trochę goni mnie czas.
w klasie User możesz zrobić metodę:
public int getAge() {
return dataUrodzenia.until(LocalDate.now()).getYears();
}
lub gdy dataUrodzenia to string
public int getAge() {
return LocalDate.parse(dataUrodzenia, formatter).until(LocalDate.now()).getYears();
}
// zamiana daty urodzenia na wiek
for (User user : list) {
Integer wiek = user.getAge();
user.setDataUrodzenia(wiek.toString());
}
rozumiem że o to chodziło? :P
Spokojnie mógłbyś napisać proste testy do swojego programu.
No i słabo. String to ciąg znaków. Nie nadaje się do reprezentacji daty.
Czytasz tę datę z pliku jako String. Wiadomo. Ale musisz to jak najszybciej zamienić na właściwy typ.