FP: Bài tập tính số ngày phép

Bài tập java: Cho danh sách nhân viên có số ngày làm việc. Ví dụ: 20, 182, 365, 545, 546. Tính số ngày phép của mỗi người. Công thức như sau:
Làm dưới 364 ngày, không có ngày phép. 364 ngày thì sẽ có 10 ngày phép. Từ đó trở đi cứ 182 ngày (nửa năm) thì +1 ngày phép.

List<Integer> arr = Arrays.asList(20,182,365,545,546);
for(int i=0;i<arr.size();i++)
{
   Integer item = arr.get(i);
   if(item >= 364) 
      System.out.print(9 + (item/182));
   else 
      System.out.print(0);
   System.out.print(",");
}

Bạn cũng có thể thử với cách viết functional programing khá thú vị trên jshell:

List.of(20,182,365,545,546) //các ngày làm việc
   .stream()
   .map(p -> p >= 364 ? 9 + (p / 182) : 0)
   .collect(java.util.stream.Collectors.toList());

2 responses to “FP: Bài tập tính số ngày phép

Bình luận về bài viết này