fork download
  1. import java.util.ArrayList;
  2. import java.util.Calendar;
  3. import java.util.List;
  4. import java.util.Scanner;
  5.  
  6. class Record {
  7. private String lastName;
  8. private String firstName;
  9. private String phoneNumber;
  10. private int[] birthDate; // Формат ДД/ММ/ГГГГ
  11.  
  12. public Record(String lastName, String firstName, String phoneNumber, int[] birthDate) {
  13. this.lastName = lastName;
  14. this.firstName = firstName;
  15. this.phoneNumber = phoneNumber;
  16. this.birthDate = birthDate;
  17. }
  18.  
  19. public String getLastName() {
  20. return lastName;
  21. }
  22.  
  23. public String getFirstName() {
  24. return firstName;
  25. }
  26.  
  27. public String getPhoneNumber() {
  28. return phoneNumber;
  29. }
  30.  
  31. public int[] getBirthDate() {
  32. return birthDate;
  33. }
  34. }
  35.  
  36. class Notebook {
  37. private List<Record> records = new ArrayList<>();
  38.  
  39. public void addRecord(Record record) {
  40. records.add(record);
  41. }
  42.  
  43. public Record findByPhoneNumber(String number) {
  44. for (Record record : records) {
  45. if (record.getPhoneNumber().equals(number)) {
  46. return record;
  47. }
  48. }
  49. return null;
  50. }
  51.  
  52. public List<Record> findPeopleWithBirthdayToday() {
  53. List<Record> result = new ArrayList<>();
  54. Calendar today = Calendar.getInstance();
  55. for (Record record : records) {
  56. int[] birthDate = record.getBirthDate();
  57. if (birthDate[0] == today.get(Calendar.DAY_OF_MONTH) && birthDate[1] == today.get(Calendar.MONTH) + 1) {
  58. result.add(record);
  59. }
  60. }
  61. return result;
  62. }
  63.  
  64. public List<Record> findPeopleWithBirthdayOnDate(int day, int month) {
  65. List<Record> result = new ArrayList<>();
  66. for (Record record : records) {
  67. int[] birthDate = record.getBirthDate();
  68. if (birthDate[0] == day && birthDate[1] == month) {
  69. result.add(record);
  70. }
  71. }
  72. return result;
  73. }
  74.  
  75. public List<Record> findPeopleWithUpcomingBirthdayNextWeek() {
  76. List<Record> result = new ArrayList<>();
  77. Calendar today = Calendar.getInstance();
  78. Calendar nextWeek = (Calendar) today.clone();
  79. nextWeek.add(Calendar.WEEK_OF_YEAR, 1);
  80.  
  81. for (Record record : records) {
  82. Calendar birthday = Calendar.getInstance();
  83. birthday.set(Calendar.DAY_OF_MONTH, record.getBirthDate()[0]);
  84. birthday.set(Calendar.MONTH, record.getBirthDate()[1] - 1); // Calendar.MONTH is zero-based
  85. birthday.set(Calendar.YEAR, today.get(Calendar.YEAR));
  86.  
  87. if (birthday.after(today) && birthday.before(nextWeek)) {
  88. result.add(record);
  89. }
  90. }
  91. return result;
  92. }
  93.  
  94. public List<Record> findPeopleWithPhonePrefix(String prefix) {
  95. List<Record> result = new ArrayList<>();
  96. for (Record record : records) {
  97. if (record.getPhoneNumber().startsWith(prefix)) {
  98. result.add(record);
  99. }
  100. }
  101. return result;
  102. }
  103. }
  104.  
  105. public class Main {
  106. public static void main(String[] args) {
  107. Notebook notebook = new Notebook();
  108. // Здесь можно добавить записи в записную книжку
  109. // Пример: notebook.addRecord(new Record("Иванов", "Иван", "1234567890", new int[]{1, 1, 1990}));
  110.  
  111. Scanner scanner = new Scanner(System.in);
  112. System.out.println("Введите номер телефона для поиска:") ;
  113. String phoneNumber = scanner.nextLine();
  114. Record foundRecord = notebook.findByPhoneNumber(phoneNumber);
  115. if (foundRecord != null) {
  116. System.out.println("Найден человек: " + foundRecord.getFirstName() + " " + foundRecord.getLastName());
  117. } else {
  118. System.out.println("Запись с таким номером телефона не найдена.");
  119. }
  120.  
  121. // Для других функций поиска, вызовите соответствующие методы класса Notebook
  122. }
  123. }
Success #stdin #stdout 0.14s 56608KB
stdin
fwp
stdout
Введите номер телефона для поиска:
Запись с таким номером телефона не найдена.