> 백엔드 개발 > C++ > C에서 주어진 날짜의 주 수를 계산하는 방법은 무엇입니까?

C에서 주어진 날짜의 주 수를 계산하는 방법은 무엇입니까?

DDD
풀어 주다: 2024-11-26 10:50:10
원래의
471명이 탐색했습니다.

How to Calculate the Week Number of a  Given Date in C  ?

주어진 날짜의 주 수를 계산하는 방법

날짜가 주어지면 해당 연도 내의 해당 날짜에 대한 주 수를 결정할 수 있습니다. 다음 단계를 통해 달성하세요.

  1. 첫 번째 날을 확인하세요. 첫 번째 주: 해당 연도의 1월 1일에 가장 가까운 월요일을 결정합니다. 이는 평일(일요일: 1, 월요일: 0, 화요일: -1, 수요일: -2, 목요일: -3, 금요일: 3, 토요일: 2)을 기준으로 1월 1일의 날짜를 더하거나 빼면 수학적으로 알 수 있습니다.
  2. 주어진 날짜와 첫 번째 주의 첫 번째 날 사이의 전체 주의 수를 계산합니다. 다음에서 첫 번째 주의 첫 번째 날을 뺍니다. 경과 일수를 얻기 위해 주어진 날짜. 이를 7로 나누면 전체 주의 수가 나옵니다.
  3. 나머지 계산: 경과 일수를 7로 나누고 나머지를 계산하여 남은 일수를 결정합니다. 이는 현재 주의 일수를 나타냅니다.
  4. 주 번호 지정: 전체 주와 남은 일수를 결합하여 주 번호를 얻습니다.

예를 들어 , 2008년 1월 10일:

  1. 첫 번째 주의 첫날은 1월입니다. 2008년 7월 7일, 월요일입니다.
  2. 경과된 일수는 10 - 7 = 3입니다.
  3. 전체 주는 3/7 = 0입니다.
  4. 남은일은 3일입니다.
  5. 따라서 주번호는 2입니다. 주 1).

C에서 이 알고리즘은 다음과 같이 구현할 수 있습니다.

#include <iostream>
#include <ctime>

using namespace std;

int main() {
  // Get the user's input date
  tm inputDate;
  cout << "Enter the date (YYYY-MM-DD): ";
  cin >> get_time(&inputDate, "%Y-%m-%d");

  // Calculate the first day of week 1
  tm firstDayOfWeek1;
  time_t firstDaySeconds = mktime(&inputDate);
  
  // Calculate the number of elapsed days
  long elapsedDays = difftime(firstDaySeconds, mktime(&firstDayOfWeek1));

  // Calculate the number of whole weeks
  int wholeWeeks = elapsedDays / (7 * 24 * 60 * 60);

  // Calculate the remainder
  int remainder = elapsedDays % (7 * 24 * 60 * 60);

  // Calculate the week number
  int weekNumber = wholeWeeks + (remainder > 0);

  // Print the week number
  cout << "The week number is: " << weekNumber << endl;

  return 0;
}
로그인 후 복사

위 내용은 C에서 주어진 날짜의 주 수를 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿