Прошу помощи. На машине вывод корректен, валидатор не пропускает... Может я чего то не вижу/не понимаю ?... Подскажите!
package com.javarush.task.task17.task1711;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;
/*
CRUD 2
*/
public class Solution {
public static volatile List<Person> allPeople = new ArrayList<Person>();
static boolean ifArgs = true;
static {
allPeople.add(Person.createMale("Иванов Иван", new Date())); //сегодня родился id=0
allPeople.add(Person.createMale("Петров Петр", new Date())); //сегодня родился id=1
}
public static void main(String[] args) {
//start here - начни тут
switch (args[0]){
case "-c":
synchronized (allPeople) {
int count = 1;
while (ifArgs) {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
try {
Date bd = sdf.parse(args[count+2]);
if (args[count+1].equals("м")){
allPeople.add(Person.createMale(args[count], bd));
}
else {
allPeople.add(Person.createFemale(args[count], bd));
}
}catch (ParseException e){
}
System.out.println(allPeople.size() - 1);
if (args.length > count + 3) {
count += 3;
continue;
} else {
ifArgs = false;
}
}
}
break;
case "-u":
synchronized (allPeople) {
int count1 = 1;
while (ifArgs) {
updatePeople(Integer.parseInt(args[count1]), args[count1 + 1], args[count1 + 2], args[count1 + 3]);
if (args.length > count1 + 4) {
count1 += 4;
continue;
} else {
ifArgs = false;
}
}
}
break;
case "-d":
synchronized (allPeople) {
int countd = 1;
while (ifArgs) {
deletePeople(Integer.parseInt(args[countd]));
if (args.length > countd + 1) {
countd += 1;
continue;
} else ifArgs = false;
}
}
break;
case "-i":
synchronized (allPeople) {
int counti = 1;
while (ifArgs) {
infoPeople(Integer.parseInt(args[counti]));
if (args.length > counti + 1) {
counti += 1;
continue;
} else ifArgs = false;
}
}
break;
}
}
public static synchronized void createPersone(String name, String sex, String date){
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
try {
Date bd = sdf.parse(date);
if (sex.equals("м")){
allPeople.add(Person.createMale(name, bd));
}
else {
allPeople.add(Person.createFemale(name, bd));
}
}catch (ParseException e){
}
}
public static synchronized void updatePeople(int index, String name, String sex, String date){
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
try {
Sex sexual;
if (sex.equals("м")){
sexual = Sex.MALE;
}
else sexual = Sex.FEMALE;
Date bd = sdf.parse(date);
allPeople.get(index).setSex(sexual);
allPeople.get(index).setName(name);
allPeople.get(index).setBirthDate(bd);
}catch (ParseException e){
}
}
public static synchronized void deletePeople(int index){
allPeople.get(index).setBirthDate(null);
allPeople.get(index).setName(null);
allPeople.get(index).setSex(null);
}
public static synchronized void infoPeople(int index){
SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyy", Locale.ENGLISH);
String date = sdf.format(allPeople.get(index).getBirthDate());
String sex = allPeople.get(index).getSex() == Sex.FEMALE ? "ж": "м";
System.out.println(allPeople.get(index).getName() + " " + sex + " " + date);
}
}