저는 Java에서 C#으로 일부 코드를 다시 작성하고 있습니다. 불행하게도 대부분의 코드는 "해킹"되어 코드 작성 방법을 추측합니다. 지금 당장은 데이터베이스에 삽입물을 재현해야합니다.C#의 타임 스탬프 비교
삽입해야 할 시간 스탬프가 약간 혼란 스럽습니다. 현재 데이터베이스의 예를 들어 기록은 다음과 같습니다 10-AUG-10 05.02.57.347694000 PM
내 코드에서 나는 비슷한 무언가를 얻을 수있었습니다 :이 코드의 아이디어는 현재로 만든 타임 스탬프를 비교하는 것입니다 22-Aug-16 11.52.20.9857574 AM
마지막 60 초 내에 첫 번째 작업이 작성된 경우 일부 작업을 수행하십시오.
첫 번째 질문 :
어떻게 정확히 내가 모든 기록이있는 것으로 확인, 10-AUG-10 05.02.57.347694000
을 재현 할 수있는 "000"는 말에, 나는 경우/다른 것을위한 필요합니까 또는 마지막을 유지하기 위해 어떤 기능이있다 파트 9 자릿수가 길어?
두 번째 질문 : 그것은 단지 숫자 인 경우
, 나는 내가 데이터베이스에서 값을 검색 할 수 있습니다 알고 다음 비교하지만, 형식은 이후 : 그 부분을 처리하는 방법을 정말 확실하지 10-AUG-10 05.02.57.347694000
,
제안 사항이 있으십니까?
해결책 :
나는이 문제를 어떻게 해야할지에 대한 이해를 가지고 몇 가지 의견을 읽은 후. 일을 단순하게 유지하고 DateTime 변수를 만든 다음 뺄셈 메서드를 사용하여이 두 시간 사이에 몇 분의 차이가 있는지 확인하기로했습니다.
예 :
DateTime guidTimestamp; // 8/25/2016 10:02:47 AM
DateTime currentTimestamp = DateTime.Now;
public int calculateMinutes(DateTime dt1, DateTime dt2)
{
int min = 0;
try
{
min = (int)((dt1 - dt2).TotalSeconds);
}
catch (Exception ex)
{
Debug.WriteLine("Exception - Date Time error: " + ex.Message);
}
return min;
}
해당 입력란의 유형은 무엇입니까? 날짜/시간대가 아닌 경우 타임 스탬프가 아니며 STRING입니다.문자열이 직접 비교를위한 "좋은"형식이 아니기 때문에 문자열 연산의 크고 끔찍한 더미로 인해 직접 비교할 수있는 형식으로 다시 포맷해야합니다. –
C# (또는 해당 언어의 모든 언어)에서 날짜 작업을 할 때 DateTime 개체를 사용하는 것이 훨씬 낫습니다. 이들을 비교할 때, 틱의 차이점을 가져 와서 TimeSpan을 작성한 다음 TimeSpan의 특성을 사용하여 차이점을 판별 할 수 있습니다. 귀하의 경우, 틱스 차이에서 TimeSpan을 만들고 Hours and Minutes (시간과 분) 속성을보고 모두 0인지 확인하십시오 (이는 60 초 미만의 차이를 의미 함). – Kevin
http://stackoverflow.com/questions/341175/datetime-parse-and-making-it-work-with-a-specific-format이 문자열을 DateTimes로 변환하는 방법은이 문서를 참조하십시오. –