문제

이 선호하는 알고리즘으로 변환하는 2-자리 연도로 4-자리 연도?

I have a2-자리 날짜 출(와 함께 한 달 일)하고 싶은 변환하여 C# DateTime.Obiviously,생년월일에 있을 수 없습니다 미래지만,거기에 기존 시설습니다.순환 2-자리 연도로 네-자리 연도?

도움이 되었습니까?

해결책

static int GetFourDigitYear(int year, int maxYear) 
{
    System.Globalization.GregorianCalendar cal = 
          new System.Globalization.GregorianCalendar();
    cal.TwoDigitYearMax = maxYear;
    return cal.ToFourDigitYear(year);
}

maxYear 현재 4 자리 연도 여야합니다.


편집하다: OP의 해결책 :

static int GetFourDigitYear(int year, int pivot) 
{
    System.Globalization.GregorianCalendar cal = 
          new System.Globalization.GregorianCalendar();
    cal.TwoDigitYearMax = new DateTime.Year + (100-pivot);
    return cal.ToFourDigitYear(year);
}

다른 팁

다양한 시스템은 기본 데이터 요구 사항에 따라 다른 중단 점 날짜를 사용합니다.

귀하의 경우, 00에서 09 년에서 09 년이 2000+ 인 반면 다른 값 (10 ~ 99)은 1900+라고 가정하는 것이 가장 안전합니다.

당신이 스스로에게 물어봐야 할 질문은 다음과 같습니다. 100 세 이상의 노인을 현재 시스템에있는 기록으로 가질 가능성은 무엇입니까?

이 계산을 정확히 한 번, 저장하고 4 자리를 사용하여 모든 코드를 향해야합니다.

그것은 나에게 발생하는 경우에는 사람이었 potentiall born january3,2007 그 가능성들이 태어나는 같은 날에 주의 100 년 이전보다 약간 적은 1/7.는 경우 이러한 가능성에 대해서 너무 높은 취향,나은 의심의 여지가 좋은 방법입니다 이것을 자동화하지 않으면 당신은 또한 상점들이다.

편집:물론,공식(알면 알고리즘을 통해 어떻게 일정 작동)는 것입니다 이 낮은 확률...그러나 결국,당신은 여전히 가능성이 어떤 잘못된 결과지 않는 경우에 저장합니다.

edit2:물론 있는 경우,자신의 나이에,당신은 필요하지 않 일정 알고리즘이 있습니다.

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