2012-10-29 2 views
1

한 열차에서 다른 열차로 전송할 수 있는지 결정하려고 할 때 문제가 있습니다. 조건은 첫 열차의 도착 (A1) 시간이 적어도 5 분이어야한다는 것입니다. 제 2 열차 (D2)의 출발 전에. 역에 도착하여 두 번째 열차가 도착하기 때문에 (A2) (두 번째 열차에서 임의로 출발 할 때까지 기다릴 수 있음) 180 분 이상 기다릴 수 없습니까?자정 전후의 시간을 비교하는 방법은 무엇입니까?

시간이 필요합니다. HH : MM 자정 이후 경과 된 시간으로 변환 한 후 시간을 비교했습니다.

자정 전의 시간과 자정 이후의 시간을 비교하려면 문제가 발생합니다.이 경우 "조건"을 변경해야합니다 : A1과 D2는 자정 이후이지만 A2는 자정 전에, A1과 A2는 자정 전에 D2가 자정 이후에 A1이 앞에 있고 A2와 D2가 이후에 있고, A1과 A2는 자정 이전 (A2는 더 일찍)이고 D2는 자정 이후입니다.

이 모든 경우에 다른 조건이 있어야합니다. 어떻게 해결할 수 있을까요?

추신 : 자정 이후 다른 시간 형식을 사용해야한다고 생각합니다.

감사합니다.

+1

어떤 platform \ framework \ language를 개발하고 있습니까? 아니면 일반적인 psuedocode 또는 접근 방식을 찾고 있습니까? – mutex

답변

0

24 시간 사용을 권합니다. 그런 식으로 두 번째 시간이 낮 으면 다음 날로 넘어 갔다는 것을 알게됩니다. 두 번째 시간이 낮 으면

당신이해야 할 것입니다 모두는 다음과 같습니다

A1 - D1 = (D)ifference 
A1 - D = time before D1 leaves (so the time between A1 and D1) 

(?. 누군가가 내 수학을 확인할 수 있습니다 난 그 잘 생각)

0

이 값을 판단하지 마십시오 자정 이후 경과 된 시간을 기준으로합니다. 실제 가치에 근거하여 판단하십시오. 대부분의 프로그래밍 언어는 간단한 날짜 빼기를 수행하는 데 사용할 수있는 날짜/시간 클래스/함수를 가지고 있습니다. 어떤 언어를 사용하고 있는지 질문을 업데이트하면 실용적인 코드 예제를 얻을 수있을 것입니다.

일반적인 UNIX/LINUX 실습으로, 예를 들어 값을 UNIX 타임 스탬프로 변환하고 빼기 만하면 시간 차이가 초 단위로 표시됩니다.

0

DateTime으로 변환 한 다음 DateDiff으로 변환 할 수 있습니까?

의사 코드 (구문 잘못이) :

If DateDiff(minutes, A1, D2) > 5 Then 
    If DateDiff(minutes, A1, A2) < 180 Then 
    Go ahead and allow the transfer 
    else 
    Look for another train (too long of a wait) 
    end if 'DateDiff(minutes, A1, A2) < 180 
    Look for another train (not enough time to transfer) 
end if 'DateDiff(minutes, A1, D2) > 5 
-2

이것은 내가 Excel에서 비슷한 문제를 위해 일하고 무엇 :

(D3 + IF((C3-D3)>0,5 ; 1 ; 0)) > (0,010417 + C3 + IF((D3-C3)>0,5 ; 1 ; 0) ) 

0시 = 0 Excel에서, 24 : 00 = 1 C3 이후 D3이 15 분 이상인지 알고 싶습니다. 위 공식은 날짜에 대해 신경 쓰지 않고도 성취 할 수 있습니다. 수식은 C3와 D3이 12 시간 이상 떨어져 있지 않은지 여부에 달려 있다는 점에 유의하십시오. 이는 사용 시나리오에서 항상 사실이므로 아무런 문제가되지 않습니다.

Laymans 용어 : 시간 1을 (시간 2 + 15 분)과 비교하지만 자정 스위치가있는 경우 시간이 12 시간 이상인지 여부를 확인하고 24 시간을 Time1 또는 Time2에 추가하십시오.

저는 아직 실제로 작동하지는 않았지만 엑셀이 똥 조각과 더 관련이 있다고 믿습니다.

내가 간략히 알고 싶었을 경우를 대비하여 알려 주시기 바랍니다!

+0

이 질문에 대한 답변이 아닙니다. FAQ (stackoverflow.com/faq)를 참조하십시오 –

+0

Michael, 어떻게하지 않습니까? 나는 그의 질문을 믿는 데이트를 망칠 필요없이 그의 자정 전/후반 자정 문제를 풀 수있는 방법을 보여줍니다. FAQ로 나를 안내해 주셔서 고맙습니다.하지만 FAQ에서 밝혀 졌듯이 답변에 대해서는 아무것도 언급하지 않았습니다. 나는 여기에서 새로운 존재이어서 친절하십시오. – Ayporos

+0

보고 싶은 것 몇; 먼저 생성 된 이후 업데이트가없는 낮은 지점 사용자의 오래된 질문입니다. 일반적으로 이는 막 다른 길을 의미합니다. 또한 의도하지 않게 "나는 아직 실제로 일하지 않았다"고 잘못 표명했을 수도 있습니다. –

관련 문제