2016-11-14 10 views
-1

현재 6 자리 숫자를 요일로 변환하려고합니다. 예를 들어 "150102"를 평일로 변환하려고합니다. "15"는 2015 "이고,"01 "은 월이며"02 "는 일입니다.6 자리 숫자를 평일 (파이썬)으로 변환

참고 가져 오기없이이 작업을 수행하고 싶습니다. 언제든지 함수 및 언어 파이썬을 사용하십시오.

+0

그리고 지금까지 무엇을 시도 했습니까? 왜 시간 함수를 가져오고 싶지 않은가? (헌신적 인 API 없이도 작업하기가 힘든 날짜/시간 작업에 대해서는 많은 미묘한 차이가있다)? 무엇을 (구체적으로) 당신은 붙어 있습니까? – user2478398

+0

당신을 위해 배치 된 알고리즘이나 일반적인 아이디어와 살펴볼 것들을 찾고 있습니까? 언급 한대로 @ user2478398에는 시간을 계산할 때 많은 세부 사항이 있습니다. –

+0

우리는 수업 시간에 기능을 사용하지 않아서 사용할 수 없습니다. 6 자리 숫자를 평일로 변환 할 수 없습니다. – CSCdummie

답변

1

글쎄, 귀하의 의견을 판단 할 때, 이것은 과제입니다 (즉, 그와 같이 표시되어야 함을 의미합니다). 그래서 나는 내 솔루션이 모호하지만 약간의 지침을 제공 할까봐 걱정됩니다. 솔루션 (아마 최고에, 읽기).

먼저, 년/월/일로 주어진 문자열을 분할 무언가를 갖고 싶어.

public class Date { 
    private int year, month, date; 

    public Date(final String given) { 
     // TODO - Extract year/month/date. 
     // Validate year is supported, month exists and date 
     // exists in month... 
    } 
} 

다음으로 평일 (예 : 2000 년 1 월 1 일)을 알 수있는 고정 소수점이 필요할 것입니다. 토요일).

그런 다음 찾는 등, 도약 년 각 월/년의 일에 대한 지식을 사용하여 얼마나 많은 일 제공된 인수가 있었다 날짜 이후 .

static int daysSinceKnown(Date date) { 
    // TODO - How many years since, how many of those were leap-years, etc. 
} 

마지막으로, 모듈러 산술은 함수의 반환으로부터 평일을 제공 할 수 있습니다. (구체적으로 그 값을 보면 mod 7 (%7)은 숫자가 0-6 [음수는 제대로 작동하지 않지만, 일의 유효성을 검사 할 때이를 알 수 있습니다.]

+0

그래서 저는 2015 년을 사용하고 있기 때문에 윤년이 필요하지 않다고 생각합니다. 또한 변환 할 수 있습니까? 파이썬으로 이거? 나는이 언어를 읽으려고 애 쓰고있다. – CSCdummie

+0

공정한 것은 윤년이다. 그리고 나는 그것이 확실하다. 하지만 나는 두려워하지 않습니다. (결코 파이썬을 보지 않았습니다.) 솔직히 말하면 실제로 여기에 구현 코드가 없으며 흐름을 설명하는 데 도움이되는 자리 표시 자이므로 변환하기가 너무 어렵지 않아야합니다 ('Date'클래스 3 메서드를 만드는 것, 년/월 반환하기 /날짜). – user2478398