Hacker News 의견

해커뉴스 댓글 모음 요약

  • 사용자 A: 이 방법은 내가 사용하는 방법과 매우 유사하며, Art Benjamin도 사용하는 방법임. 10~15초 내에 할 수 있지만 연습과 약간의 암기, 그리고 간단한 산수가 필요함. 이 기술을 익히면 매우 유용함.

    • 예시: 2024년 5월 24일의 요일 계산
      2012년 이후 12년
      윤년 3회
      마법의 월 번호 2
      날짜 24
      합산 후 7로 나눈 나머지: 금요일
      
  • 사용자 B: JH Conway는 다른 기술을 사용했으며, 현재 연도의 요일을 계산할 때 더 빠르고 쉬움. 그러나 다른 연도의 "Doomsday"를 계산할 때는 어려움이 있어 기본 방법으로 돌아감.

  • 사용자 C: 1752년에 일어난 구식과 신식 날짜의 차이에 대해 읽으며 흥미로웠음. 18세기에는 영국의 법적 연도가 3월 25일에 시작되었음.

  • 사용자 D: 월 번호 계산 알고리즘을 이해하는 데 어려움을 겪고 있음. 각 월의 번호를 계산하는 방법을 설명하며, 자신의 시도와 기사에서 제시된 결과가 일치하지 않음을 지적함.

  • 사용자 E: Carroll의 알고리즘이 시간이 지나면서 진화해왔음. 최신 개선 사항을 포함한 First Sunday Doomsday Algorithm을 소개함.

  • 사용자 F: 더 간단한 방법을 설명한 블로그 글을 작성했음. 링크를 통해 자세한 내용을 확인할 수 있음.

  • 사용자 G: Art Benjamin이 TED 강연에서 이 기술을 시연하는 것을 보는 것이 매우 흥미로웠음. 그의 손 움직임을 통해 중간 계산을 추적할 수 있음.

  • 사용자 H: Lewis Carroll의 방법을 사용하여 2024년 5월 24일의 요일을 계산함.

    • 예시:
      세기 항목: 6
      연도 항목: 2
      월 항목: 1
      날짜 항목: 24
      총합: 금요일
      
  • 사용자 I: Python 코드를 사용하여 날짜의 요일을 계산하는 방법을 공유함.

    def compute_day_of_week(date):
        day, month, year = date
        century = year // 100
        year_part = year % 100
    
        # 세기 항목 계산
        if year < 1752 or (year == 1752 and (month < 9 or (month == 9 and day < 14))):
            century_item = (18 - century) % 7
        else:
            century_item = ((3 - (century % 4)) * 2) % 7
    
        # 연도 항목 계산
        year_item = (year_part + (year_part // 4)) % 7
    
        # 월 항목 계산
        month_items = [0, 3, 3, 6, 1, 4, 6, 2, 5, 0, 3, 5]
        month_item = month_items[month - 1]
    
        # 날짜 항목 계산
        day_item = day % 7
    
        # 총합
        total = (century_item + year_item + month_item + day_item) % 7
    
        # 윤년 보정
        if month <= 2 and (year % 4 == 0 and (year % 100 != 0 or year % 400 == 0)):
            total = (total - 1 + 7) % 7
    
        return total
    
    def day_of_week_string(day_index):
        days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
        return days[day_index]
    
    # 날짜 입력 받기
    date_input = input("Enter a date (yyyy-mm-dd): ")
    year, month, day = map(int, date_input.split('-'))
    date = (day, month, year)
    
    # 요일 계산 및 출력
    day_index = compute_day_of_week(date)
    day_name = day_of_week_string(day_index)
    print(f"The day of the week for {date_input} is {day_name}.")
    
  • 사용자 J: 수학에서 표기법이 얼마나 중요한지 강조함. 표기법이 수학과 컴퓨터 과학에서 매우 중요한 요소임을 언급함.

  • 사용자 K: 20초 내에 이 작업을 할 수 있다면 놀라운 일임. 자신을 "빠른 계산기"로 여기지 않았음.