Nice programing

두 날짜 (일수)의 차이를 계산 하시겠습니까?

nicepro 2020. 9. 27. 14:00
반응형

두 날짜 (일수)의 차이를 계산 하시겠습니까?


이 질문에 대한 답변은 Java , JavaScriptPHP 이지만 C #은 아닙니다. 그렇다면 C #에서 두 날짜 사이의 일 수를 어떻게 계산할 수 있습니까?


다음 StartDateEndDate같은 유형 이라고 가정 합니다 DateTime.

(EndDate - StartDate).TotalDays

날짜 빼기 결과 인 TimeSpan 개체를 사용합니다.

DateTime d1;
DateTime d2;
return (d1 - d2).TotalDays;

정답은 정답이지만 정수로 WHOLE 일만을 원하고 날짜의 시간 구성 요소를 잊고 싶다면 다음을 고려하십시오.

(EndDate.Date - StartDate.Date).Days

다시 StartDate 및 EndDate가 DateTime 유형이라고 가정합니다.


나는 이것이 당신이 원하는 것을 할 것이라고 생각합니다.

DateTime d1 = DateTime.Now;
DateTime d2 = DateTime.Now.AddDays(-1);

TimeSpan t = d1 - d2;
double NrOfDays = t.TotalDays;

DateTime xmas = new DateTime(2009, 12, 25);
double daysUntilChristmas = xmas.Subtract(DateTime.Today).TotalDays;

누군가가 하루의 숫자를 double ( a, b유형 DateTime) 으로 원하는 경우 :

 (a.Date - b.Date).TotalDays

// Difference in days, hours, and minutes.

TimeSpan ts = EndDate - StartDate;

// Difference in days.

int differenceInDays = ts.Days; // This is in int
double differenceInDays= ts.TotalDays; // This is in double

// Difference in Hours.
int differenceInHours = ts.Hours; // This is in int
double differenceInHours= ts.TotalHours; // This is in double

// Difference in Minutes.
int differenceInMinutes = ts.Minutes; // This is in int
double differenceInMinutes= ts.TotalMinutes; // This is in double

초, 밀리 초 및 틱의 차이를 얻을 수도 있습니다.


당신은 이것을 시도 할 수 있습니다

EndDate.Date.Subtract(DateTime.Now.Date).Days

저와 같은 초보자를 위해 int 로의 샘플 변환을 통해 간단한 줄로이 작은 문제를 발견 할 것입니다 .

int totalDays = Convert.ToInt32((DateTime.UtcNow.Date - myDateTime.Date).TotalDays);

오늘 (DateTime.UtcNow.Date)부터 원하는 날짜 (myDateTime.Date)까지의 총 일수를 계산합니다.

myDateTime이 어제이거나 오늘보다 오래된 날짜이면 양의 (+) 정수 결과를 제공합니다.

반면에 myDateTime이 내일이거나 미래 날짜이면 더하기 규칙으로 인해 음의 (-) 정수 결과를 제공합니다.

즐거운 코딩 되세요! ^ _ ^


들어 ab이 개 같은 DateTime유형 :

DateTime d = DateTime.Now;
DateTime c = DateTime.Now;
c = d.AddDays(145);
string cc;
Console.WriteLine(d);
Console.WriteLine(c);
var t = (c - d).Days;
Console.WriteLine(t);
cc = Console.ReadLine();

시간 범위를 사용하면 많은 속성이 있으므로 문제를 해결할 수 있습니다.

DateTime strt_date = DateTime.Now;
DateTime end_date = Convert.ToDateTime("10/1/2017 23:59:59");
//DateTime add_days = end_date.AddDays(1);
TimeSpan nod = (end_date - strt_date);
Console.WriteLine(strt_date + "" + end_date + "" + "" + nod.TotalHours + "");
Console.ReadKey();

먼저 나중에 반환 할 클래스를 선언합니다.

public void date()
{
    Datetime startdate;
    Datetime enddate;
    Timespan remaindate;

    startdate = DateTime.Parse(txtstartdate.Text).Date;
    enddate = DateTime.Parse(txtenddate.Text).Date;

    remaindate = enddate - startdate;

    if (remaindate != null)
    {
        lblmsg.Text = "you have left with " + remaindate.TotalDays + "days.";
    }
    else
    {
        lblmsg.Text = "correct your code again.";
    }
}

protected void btncal_Click(object sender, EventArgs e)
{
    date();
}

버튼 컨트롤을 사용하여 위의 클래스를 호출하십시오. 다음은 예입니다.


아래 코드를 사용할 수 있습니다.

 int DateDifInSecond = EndDate.Subtract(StartDate).TotalSeconds

두 날짜의 차이를 확인한 다음 다음에서 날짜를 가져옵니다.

int total_days = (EndDate - StartDate).TotalDays

protected void Calendar1_SelectionChanged(object sender, EventArgs e)
{
    DateTime d = Calendar1.SelectedDate;
    // int a;
    TextBox2.Text = d.ToShortDateString();
    string s = Convert.ToDateTime(TextBox2.Text).ToShortDateString();
    string s1 =  Convert.ToDateTime(Label7.Text).ToShortDateString();
    DateTime dt = Convert.ToDateTime(s).Date;
    DateTime dt1 = Convert.ToDateTime(s1).Date;
    if (dt <= dt1)
    {
        Response.Write("<script>alert(' Not a valid Date to extend warranty')</script>");
    }
    else
    {
        string diff = dt.Subtract(dt1).ToString();
        Response.Write(diff);
        Label18.Text = diff;
        Session["diff"] = Label18.Text;
    }
}   

참고URL : https://stackoverflow.com/questions/1607336/calculate-difference-between-two-dates-number-of-days

반응형