문제

레거시 ONE (Classic ASP)을 기반으로 새로운 ASP.NET 웹 응용 프로그램을 구축하고 있습니다. 5 년 전에이 코드 4를 구축 한 사람들은 Datediff와 같은 많은 vbscript 기능을 사용했습니다.

현재 날짜로 많은 계산을하는 시뮬레이터를 작업하고 있습니다. 그리고 VB 6에서와 마찬가지로 C#의 달 사이의 차이를 쉽게 얻을 수있는 방법이 없기 때문에이 날짜 사이에 성가신 차이가 있습니다.

따라서 ASP.NET 웹 응용 프로그램에서 Microsoft.visualBasic 네임 스페이스에서 DateAndTime.Datediff를 사용하는 경로를 선택합니다.

너희들은 그것에 약간의 의미가 있는지 알고 있습니까? 나는이 접근법에 약간 걱정하고 있습니다.

건배,

도움이 되었습니까?

해결책

유일한 의미는 배포에 다른 어셈블리를 추가하고 많은 C# 개발자 (코드를 유지 해야하는 다른 사람들)가 알지 못하는 기능을 사용한다는 것입니다. 그러나 개인적으로 나는 그것에 많은 문제가 있다고 생각하지 않습니다. MSDN 라이브러리 문서는 일반적으로 양호하며 사용하는 이유를 설명하려면 몇 가지 의견을 추가 할 수도 있습니다.

편집 : 또한 Microsoft.visualBasic은 .NET 용으로 처음부터 구현되었습니다. 그것은 고대 코드를 포함하지 않습니다.

다른 팁

하나의 가능성은 Itay가 지적한대로 타임 스팬을 사용하는 것이지만 분수 월을 무시하고 30.4375 (월 평균 일)로 나눕니다. 이것은 내가 현재 일하고있는 일에 충분하지만 귀하의 요구에 따라 충분히 정확하지 않을 수 있습니다. 예를 들어, 2 월 1 일과 3 월 1 일의 차이는 0이되며 (30.4375 일의 달 정의에 따라) 정확합니다. 그러나 특정 목적에 맞지 않을 수도 있습니다.

VisualBasic 네임 스페이스에 분류 된 것 중 어느 것도 사용해서는 안되기 때문에 좋은 일입니다.

.NET 라이브러리는 TimesPan이라는 훨씬 더 나은 솔루션을 제공합니다. 다음 방법으로 사용합니다. (DT1 및 DT2는 DateTime에스)

 TimeSpan ts = dt2 - dt1; //Or ts = dt1.Subtract(dt2)

내가 도와주고 싶은 한, 나는 지적을 빠르게 한 눈에 나머지를 말해 줄 것이라고 생각합니다 (Visual Studio에 이것을 쓰고 추가합니다. ts.)

편집하다 실제 달 계산 : (y2 - y1) * 12 + m2 - m1, 왜 그렇게 난리야?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top