DateFormat dateFormat = new SimpleDateFormat("MMMMM d yyyy", Locale.ENGLISH); Date currentDate = dateFormat.parse(date); //присваиваем переменной currentDate значение из строки date Date yearStartTime = currentDate; // объявляем переменную yearStartTime и заносим значение переменной currentDate yearStartTime.setMonth(0); yearStartTime.setDate(1); // приводим дату переменной yearStartTime к 1 января для вычисления разницы между датами Вопрос в том, что после данных манипуляций переменная currentDate также приводится к началу года. Почему? Задачу решил, только запарсив переменную currentDate заново