[java] ์ฃผ๋ง ์ œ์™ธํ•œ ์ด์ „ 5์ผ ๊ตฌํ•˜๊ธฐ

2014. 2. 27. 11:59ยทLanguages/JAVA

thumb

import java.time.DayOfWeek;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;

public class PreviousDaysExcludingWeekends {
    public static List<LocalDate> getPreviousWeekdays(int days) {
        List<LocalDate> weekdays = new ArrayList<>();
        LocalDate date = LocalDate.now().minusDays(1); // start from yesterday
        while (weekdays.size() < days) {
            if (!isWeekend(date)) {
                weekdays.add(date);
            }
            date = date.minusDays(1); // go to previous day
        }
        return weekdays;
    }

    private static boolean isWeekend(LocalDate date) {
        DayOfWeek dayOfWeek = date.getDayOfWeek();
        return dayOfWeek == DayOfWeek.SATURDAY || dayOfWeek == DayOfWeek.SUNDAY;
    }
}

์ฝ”๋“œ์— ๋Œ€ํ•œ ์„ค๋ช…

  1. ํ•„์š”ํ•œ ํด๋ž˜์Šค LocalDate, DayOfWeek, ArrayList ๋ฐ List๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
  2. ์ •์ˆ˜ 'days'๋ฅผ ์ž…๋ ฅ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  'LocalDate' ๊ฐœ์ฒด ๋ชฉ๋ก์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ณต๊ฐœ ์ •์  ๋ฉ”์„œ๋“œ 'getPreviousWeekdays'๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  3. ํ‰์ผ์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์ƒˆ๋กœ์šด ArrayList๋ฅผ ์ƒ์„ฑํ•˜๊ณ  LocalDate ๊ฐ์ฒด date๋ฅผ ์–ด์ œ๋กœ ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค.
  4. 'while' ๋ฃจํ”„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชฉ๋ก์— ํ‰์ผ์ด ์ถฉ๋ถ„ํ•  ๋•Œ๊นŒ์ง€ ์ด์ „ ๋‚ ์งœ๋ฅผ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.
  5. ๋ฃจํ”„ ๋‚ด์—์„œ isWeekend ๋„์šฐ๋ฏธ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ date๊ฐ€ ์ฃผ๋ง์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ฃผ๋ง์ด ์•„๋‹Œ ๊ฒฝ์šฐ 'ํ‰์ผ' ๋ชฉ๋ก์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  6. '๋‚ ์งœ'๋ฅผ ํ•˜๋ฃจ์”ฉ ์ค„์ด๊ณ  ๋ฃจํ”„๋ฅผ ๊ณ„์†ํ•ฉ๋‹ˆ๋‹ค.
  7. ๋งˆ์ง€๋ง‰์œผ๋กœ weekdays ๋ชฉ๋ก์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

isWeekend ๋ฉ”์„œ๋“œ๋Š” LocalDate ๊ฐœ์ฒด๋ฅผ ๊ฐ€์ ธ์™€์„œ ํ† ์š”์ผ์ด๋‚˜ ์ผ์š”์ผ์ด๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋น„๊ณต๊ฐœ ๋„์šฐ๋ฏธ ๋ฉ”์„œ๋“œ์ž…๋‹ˆ๋‹ค. ์ฃผ๋ง์„ ํ•„ํ„ฐ๋งํ•˜๊ธฐ ์œ„ํ•ด getPreviousWeekdays ๋ฉ”์„œ๋“œ ๋‚ด์—์„œ ์ด ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ด ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด getPreviousWeekdays(5)๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์ด์ „ 5๊ฐœ์˜ ํ‰์ผ(์ฃผ๋ง ์ œ์™ธ)์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„ ์ž‘์—…์— ํŽธ๋ฆฌํ•œ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜๋Š” Java 8 ๋‚ ์งœ/์‹œ๊ฐ„ API๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

 public void cal() {
    int dayOfWeek = 0;
    Calendar c = Calendar.getInstance();
    c.set(Calendar.DAY_OF_WEEK, c.get(Calendar.DAY_OF_MONTH));
    DateFormat df = new SimpleDateFormat("yyyyMMdd EEE");
    for(int i = 0; i <= 4; i++) {
    	dayOfWeek = c.get(Calendar.DAY_OF_WEEK);
        if (dayOfWeek == Calendar.MONDAY) {
        	c.add(Calendar.DATE, -3);
        } else if(dayOfWeek == Calendar.SUNDAY) {
        	c.add(Calendar.DATE, -2);
        } else {
        	c.add(Calendar.DATE, -1);
        }
    }
    System.out.println(df.format(c.getTime()));
}

 

 

728x90
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)
'Languages/JAVA' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • JPA(Java Persistence API)๋ž€ ๋ฌด์—‡์ธ๊ฐ€?
  • zipํŒŒ์ผ ํ•ด์ œ, ๋Œ€์ƒ ํด๋” ๋ณ€๊ฒฝ & ํŒŒ์ผ ์œ„์น˜ ๋ณ€๊ฒฝ
  • [java]FilePart(fileUpload)
  • [JAVA]ํŠน์ˆ˜๋ฌธ์ž๋ฅผ ์›ํ•˜๋Š” ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜
์ง€๋‹ˆ๐Ÿงž‍โ™‚๏ธ๐Ÿฅญ
์ง€๋‹ˆ๐Ÿงž‍โ™‚๏ธ๐Ÿฅญ
์ผ์ƒ, ๊ฒŒ์ž„, ๋ง›์ง‘, ์—ฌํ–‰, ๊ฐœ๋ฐœ, IT ๋ธ”๋กœ๊ทธ๐Ÿงž
  • ์ง€๋‹ˆ๐Ÿงž‍โ™‚๏ธ๐Ÿฅญ
    ์š”์ˆ  ๋žจํ”„๐Ÿซ–
    ์ง€๋‹ˆ๐Ÿงž‍โ™‚๏ธ๐Ÿฅญ
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • All (549)
      • Languages (57)
        • JAVA (13)
        • JSP (1)
        • C_C++ (4)
        • Html (3)
        • CSS (1)
        • JavaScript (18)
        • Python (3)
        • Kotlin (13)
        • TypeScript (1)
      • Framework (14)
        • spring (11)
        • jstl (1)
        • angular (2)
      • Tool (28)
        • Eclipse (5)
        • vsCode (3)
        • scrcpy (2)
        • Git (1)
        • IntelliJ (6)
        • Visual-studio (1)
        • UML (1)
        • Gradle (8)
      • DB (6)
        • Oracle (1)
        • MySql (3)
        • Mongo (2)
      • OS (14)
        • Linux (2)
        • Windows (12)
      • Server (8)
        • Tomcat (1)
        • Apache (1)
        • Node.js (6)
      • Programmings (25)
        • Design Pattern (2)
        • Funny (20)
        • Algorithms (3)
      • Cloud (8)
        • Docker (1)
        • Kubernetes (4)
        • Istio (1)
        • ArgoCD (2)
      • IT (5)
        • gRPC (3)
        • RESTful (3)
        • Web UI (5)
        • AI (4)
      • Book (6)
      • TIP (187)
      • Life (53)
      • Game (83)
      • Storage (22)
      • ์‹๋‹น (15)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
    • ์‚ฌ์ดํŠธ๋งต
    • RSS
    • ๊ธฐํƒ€ ์†Œ๋“
  • ๋งํฌ

    • ๊ตฌ๊ธ€
    • ๋„ค์ด๋ฒ„
    • ์ •๋ถ€24
    • Spring Framework ๋ฆด๋ฆฌ์ฆˆ ๋…ธํŠธ
    • Kotlin ๋ฆด๋ฆฌ์ฆˆ ๋…ธํŠธ
    • ์นด์นด์˜ค ์• ๋“œํ•
    • ๋ธ”๋กœ๊ทธ ์‚ฌ์ดํŠธ๋งต
    • ๋ธ”๋กœ๊ทธ RSS
  • ๊ณต์ง€์‚ฌํ•ญ

    • ์•ˆ๋…•ํ•˜์„ธ์š”
  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ํƒœ๊ตญ
    ๋ชฌ์Šคํ„ฐํ—Œํ„ฐ์™€์ผ์ฆˆ
    ๋‰ด์Šค
    ๋ฐ์ผ๋ฆฌ ๋‰ด์Šค
    ํ€˜์ŠคํŠธ
    ๋ธŒ๋ฆฌํ•‘
    ์˜ค๋Š˜์˜๋‰ด์Šค
    ๋‰ด์Šค ๋ธŒ๋ฆฌํ•‘
    ๋ชฌ์Šคํ„ฐํ—Œํ„ฐ๋‚˜์šฐ
    ํ•œ๋ˆˆ์— ๋ณด๋Š” ์˜ค๋Š˜์˜ ๋‰ด์Šค
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
์ง€๋‹ˆ๐Ÿงž‍โ™‚๏ธ๐Ÿฅญ
[java] ์ฃผ๋ง ์ œ์™ธํ•œ ์ด์ „ 5์ผ ๊ตฌํ•˜๊ธฐ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”