C\#TimeSpan 계산 시간 차(시간 간격)
9406 단어 c#시간 차 를 계산 하 다
네 임 스페이스:System 프로그램 집합:mscorlib(mscorlib.dll 에서)
설명:1.DateTime 값 유형 은 서기 0001 년 1 월 1 일 0 시 0 분 0 초 에서 서기 9999 년 12 월 31 일 23 시 59 분 59 초 사이 의 구체 적 인 날짜 시간 을 대표 한다.따라서 상상 범위 내의 모든 시간 을 DateTime 값 형식 으로 묘사 할 수 있다.TimeSpan 값 은 많은 속성 과 방법 을 포함 하고 있 습 니 다.TimeSpan 값 을 방문 하거나 처리 하 는 데 사 용 됩 니 다.
그 중 다섯 가지 과부하 방법 중 하나 인 구조 TimeSpan(int days,int hours,int minutes,int seconds)
아래 목록 은 그 중의 일부 방법 과 속성 해석 을 포함한다.
TimeSpan ts = new TimeSpan(12, 12, 11, 12, 21);
int days = new TimeSpan(12, 12, 11, 12, 21).Days;
TimeSpan duration = new TimeSpan(-12, 12, 11, 12, 21).Duration();//24
double totalDays = new TimeSpan(12, 12, 11, 12, 21).TotalDays;
double totalHours = new TimeSpan(2, 12, 11, 12, 21).TotalHours;
int hours = new TimeSpan(12, 12, 11, 12, 21).Hours;
int minutes = new TimeSpan(12, 12, 11, 12, 21).Minutes;
TimeSpan ts2 = new TimeSpan(1, 3, 01, 12, 21);
// TimeSpan ts2 = new TimeSpan(5, 3, 1, 12, 21);//this is also right
TimeSpan ts3 = new TimeSpan(5, 3, 01, 12, 21).Add(ts);
TimeSpan ts4 = new TimeSpan(4, 3, 01, 12, 21).Subtract(ts);
TimeSpan ts5 = new TimeSpan(4, 3, 01, 12, 21).Subtract(ts).Duration();
TimeSpan Negate = new TimeSpan(5, 3, 01, 12, 21).Negate();
DateTime dtnow = DateTime.Now;
Console.WriteLine(ts);
Console.WriteLine(days);
Console.WriteLine(duration);
Console.WriteLine(totalDays);
Console.WriteLine(totalHours);
Console.WriteLine(hours);
Console.WriteLine(minutes);
Console.WriteLine(ts2);
Console.WriteLine(ts+ts2);
Console.WriteLine(ts3);
Console.WriteLine("Subtract:"+ts4);
Console.WriteLine("Duration:" + ts5);
Console.WriteLine(ts - ts2);
Console.WriteLine(Negate);
DateTime span = DateTime.Now.Add(ts2);
TimeSpan spdate = span - DateTime.Now;
long dateTicks = DateTime.Now.Add(ts2).Ticks;
Console.WriteLine(span);
Console.WriteLine(spdate);
Console.WriteLine(dateTicks);
마이너스
위 는 비교적 늦 은 날짜 가 비교적 일찍 줄 어 든 날짜 이기 때문에 각 속성 치 는 양수 이 고 비교적 빠 른 날짜 가 늦게 줄 어 든 날짜 라면 속성 치 는 마이너스 이다.
ASP.NET 에서 두 시간 이 서로 줄 어 들 고 하나의 TimeSpan 인 스 턴 스 를 얻 었 습 니 다.TimeSpan 은 일부 속성 이 있 습 니 다.Days,Total Days,Hours,Total Hours,Minutes,Total Minutes,Seconds,Total Seconds,Ticks,TotalTicks 가 없 는 지 주의 하 세 요.
예 를 들 어 설명 하 다.
시간 1 은 2010-1-2 8:43:35;
시간 2 는 2010-1-12 8:43:34 입 니 다.
시간 2 에서 시간 1 을 줄 여 TimeSpan 인 스 턴 스 를 얻 습 니 다.
그럼 시간 2 대 시간 1 대 9 일 23 시간 59 분 59 초.
그럼 데 이 즈 는 9,아 워 스 는 23,미 닛 은 59,세 컨 즈 는 59.
다시 볼 때 Ticks 는 100 나 초,즉 1000 만 분 의 1 초 를 나타 내 는 시간 주기 이다.그러면 Ticks 는 여기 서 총 몇 개의 시간 주기 차이 가 있 는 지 를 나타 낸다.즉,9*24*3600*10000000+23*3600*10000000+59*10000000+59*10000000=8639900000000 이다.3600 은 한 시간의 초 이다.
Total Days 는 Ticks 를 일수 로 환산 하 는 것 이다.즉,863990000000/(10000000*24*3600)=9.99998842592593 이다.
Total Hours 는 Ticks 를 시간 수로 환산 하 는 것 입 니 다.즉,863990000000/(10000000*3600)=239.9997222222 입 니 다.
Total Minutes 는 Ticks 를 분 수로 환산 하 는 것 이다.즉,863990000000/(10000000*60)=14399.9833333333 이다.
Total Seconds 는 Ticks 를 초 수로 환산 하 는 것 이다.즉,863990000000/(10000000)=863999 이다.
다음은 자주 사용 하 는 방법 을 제공 합 니 다.
최근 발표 시간 까지 의 함수 구하 기
public string DateStringFromNow(DateTime dt)
{
TimeSpan
span = DateTime.Now - dt;
if (span.TotalDays > 60)
{
return
dt.ToShortDateString();
}
else if ( span.TotalDays > 30 )
{
return "1 ";
}
else if (span.TotalDays > 14)
{
return
"2 ";
}
else if (span.TotalDays > 7)
{
return "1 ";
}
else if (span.TotalDays > 1)
{
return string.Format("{0} ",
(int)Math.Floor(span.TotalDays));
}
else if (span.TotalHours > 1)
{
return string.Format("{0} ", (int)Math.Floor(span.TotalHours));
}
else if (span.TotalMinutes > 1)
{
return string.Format("{0} ", (int)Math.Floor(span.TotalMinutes));
}
else if (span.TotalSeconds >= 1)
{
return string.Format("{0} ",
(int)Math.Floor(span.TotalSeconds));
}
else {
return "1 ";
}
}
C\#에서 TimeSpan 을 사용 하여 두 시간의 차 이 를 계산 합 니 다.두 날짜 사이 의 어떤 시간 단 위 를 거꾸로 추가 할 수 있다.
private string DateDiff(DateTime DateTime1, DateTime DateTime2)
{string dateDiff = null;
TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);
TimeSpan ts2 = new
TimeSpan(DateTime2.Ticks);
TimeSpan ts = ts1.Subtract(ts2).Duration();
dateDiff = ts.Days.ToString()+" "+ ts.Hours.ToString()+" "+ ts.Minutes.ToString()+" "+ ts.Seconds.ToString()+" ";
return dateDiff;
}
TimeSpan ts = Date1 - Date2;
double dDays = ts.TotalDays;// , 1 12 1.5
예 를 들 어 하루 12 시간 이면 1.5.int nDays = ts.Days;//정수 일수,하루 12 시간 또는 하루 20 시간 결 과 는 모두 1 이다.
/// <summary>
///
/// </summary>
/// <param name="today"> </param>
/// <param name="writeDate"> </param>
/// <param name="n"> </param>
<returns> true, false</returns>
private bool CompareDate(string today, string writeDate, int n)
{
DateTime Today = Convert.ToDateTime(today);
DateTime WriteDate = Convert.ToDateTime(writeDate);
WriteDate = WriteDate.AddDays(n);
if (Today>= WriteDate)
return false;
else
return true;
}
Date 데이터 형식 을 정의 할 때 다음 세 가 지 를 주의해 야 합 니 다.1.Date 수 치 는 숫자 기호'\#'로 묶 어야 합 니 다.
2.Date 수치 에 있 는 날짜 데 이 터 는 있어 도 되 고 없어 도 됩 니 다.'m/d/yyy'형식 에 맞 아야 합 니 다.
3.Date 수치 에 있 는 시간 데 이 터 는 있 으 나 마 나 합 니 다.날짜 데이터 와 빈 칸 을 통 해 분리 해 야 하고 시간 과 초 사이 에':'로 분리 해 야 합 니 다.
1.DateTime 과 TimeSpan 의 관계 와 차이 점:
DateTime 과 TimeSpan 은 Visual Basic.Net 에서 시간,날짜 유형 데 이 터 를 처리 하 는 두 가지 주요 한 구조 로 이 두 가지 차이 점 은 DatTime 은 고정된 시간 을 나타 내 고 TimeSpan 은 시간 간격,즉 시간 을 나타 낸다 는 것 이다.아래 에 소 개 된 프로그램 예제 에서 TimeSpan 은 현재 시간 과 주어진 시간의 차 이 를 사용 합 니 다.
2.DateTime 과 TimeSpan 에서 자주 사용 되 는 멤버 와 설명:
DateTime 구조 와 TimeSpan 구 조 는 풍부 한 방법 과 속성 을 제공 합 니 다.
속성 설명
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C#Task를 사용하여 비동기식 작업을 수행하는 방법라인이 완성된 후에 이 라인을 다시 시작할 수 없습니다.반대로 조인(Join)만 결합할 수 있습니다 (프로세스가 현재 라인을 막습니다). 임무는 조합할 수 있는 것이다. 연장을 사용하여 그것들을 한데 연결시키는 것이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.