2017-10-10 7 views
0
나는 다음과 같은 코드를 함께 일하고

:C#을 두 사용자가 입력 한 달의 날짜와 년의 차이

static void Main(string[] args) 
    { 
     Dates(); 
     Console.ReadLine();   

    } 

    public static void Dates() 
    { 

     Console.WriteLine("Enter any date: "); 
     DateTime firstDate = DateTime.Parse(Console.ReadLine()); 
     Console.WriteLine("Enter another date: "); 
     DateTime secondDate = DateTime.Parse(Console.ReadLine()); 

     TimeSpan diff = firstDate - secondDate; 

     Console.WriteLine("Days : " + diff.TotalDays.ToString()); 
     Console.WriteLine("Hours : " + diff.TotalHours.ToString()); 
     Console.WriteLine("Minutes : " + diff.TotalMinutes.ToString()); 


    } 

내가 개월에서 몇 년 차이를 계산하는 방법을 알아낼 수 없었다 두 날짜. 누구든지 도와 줄 수 있습니까? 또한 프로그램을 매번 양의 정수로 반환하려면 어떻게해야합니까?

+2

어떻게 당신이 그것을 할 것이다 당신이 당신의 손가락에 계산한다면? 그렇게해라. –

+0

질문의 마지막 부분은'TimeSpan diff = (firstDate - secondDate) .Duration()'입니다. –

+0

항상 긍정적 인 결과를 가져 오는 이유는 무엇입니까?이 데이터를 언제 보내시겠습니까? –

답변

0

이 질문의 첫 번째 부분에 대한 답변입니다. 두 달 간의 차이를 년과 월 (일 수, 이유는 아님)으로 계산합니다. 질문은 다소 모호하므로 약간의 가정을했습니다.

마찬가지로 '차이'는 나이를 계산할 때 일반적으로 의미하는 것입니다. 에서와 마찬가지로 시작일이 5/12/2014이고 종료일이 2/16/2017 인 경우 차이는 으로 계산됩니다. 너는 표류를 얻는다.

둘째, 나는 시간을 고려하지 않습니다. 마찬가지로 내가 year,, and 일만 지정하여 DateTime 개체를 만들었습니다.

그래서 여기 간다 :

public static void DateTimeDiff(DateTime dt1, DateTime dt2, out int years, out int months, out int days) 
{ 
    DateTime start = dt1 < dt2 ? dt1 : dt2; 
    DateTime end = dt2 > dt1 ? dt2 : dt1; 

    years = 0; 
    months = 0; 
    days = 0; 

    while (start.AddYears(1) < end) 
    { 
     start = start.AddYears(1); 
     years++; 
    } 

    while (start.AddMonths(1) < end) 
    { 
     start = start.AddMonths(1); 
     months++; 
    } 

    while (start.AddDays(1) < end) 
    { 
     start = start.AddDays(1); 
     days++; 
    } 
}