C# 时间计算
今天、昨天、前天、明天
class Program
{
static void Main(string[] args)
{
DateTime dt1=GetTodayZeroTime(DateTime.Now);
Console.WriteLine("今天零点:{0}",dt1.ToString() );
DateTime dt2 = GetYestodayZeroTime(DateTime.Now);
Console.WriteLine("昨天零点:{0}", dt2.ToString());
DateTime dt3 = GetDayBeforYestodayZeroTime(DateTime.Now);
Console.WriteLine("前天零点:{0}", dt3.ToString());
DateTime dt4 = GetTomorrowZeroTime(DateTime.Now);
Console.WriteLine("明天零点:{0}", dt4.ToString());
Console.ReadLine();
{
static void Main(string[] args)
{
DateTime dt1=GetTodayZeroTime(DateTime.Now);
Console.WriteLine("今天零点:{0}",dt1.ToString() );
DateTime dt2 = GetYestodayZeroTime(DateTime.Now);
Console.WriteLine("昨天零点:{0}", dt2.ToString());
DateTime dt3 = GetDayBeforYestodayZeroTime(DateTime.Now);
Console.WriteLine("前天零点:{0}", dt3.ToString());
DateTime dt4 = GetTomorrowZeroTime(DateTime.Now);
Console.WriteLine("明天零点:{0}", dt4.ToString());
Console.ReadLine();
}
private static DateTime GetTodayZeroTime(DateTime datetime)
{
return new DateTime(datetime.Year, datetime.Month, datetime.Day);
}
private static DateTime GetYestodayZeroTime(DateTime datetime)
{
TimeSpan timespan = new TimeSpan(1, 0, 0, 0);
DateTime yesdt = datetime.Subtract(timespan);
return new DateTime(yesdt.Year, yesdt.Month, yesdt.Day);
}
{
TimeSpan timespan = new TimeSpan(1, 0, 0, 0);
DateTime yesdt = datetime.Subtract(timespan);
return new DateTime(yesdt.Year, yesdt.Month, yesdt.Day);
}
private static DateTime GetDayBeforYestodayZeroTime(DateTime datetime)
{
TimeSpan timespan = new TimeSpan(2, 0, 0, 0);
DateTime yesdt = datetime.Subtract(timespan);
return new DateTime(yesdt.Year, yesdt.Month, yesdt.Day);
}
{
TimeSpan timespan = new TimeSpan(2, 0, 0, 0);
DateTime yesdt = datetime.Subtract(timespan);
return new DateTime(yesdt.Year, yesdt.Month, yesdt.Day);
}
private static DateTime GetTomorrowZeroTime(DateTime datetime)
{
TimeSpan timespan = new TimeSpan(1, 0, 0, 0);
DateTime yesdt = datetime.Add(timespan);
return new DateTime(yesdt.Year, yesdt.Month, yesdt.Day);
}
}
{
TimeSpan timespan = new TimeSpan(1, 0, 0, 0);
DateTime yesdt = datetime.Add(timespan);
return new DateTime(yesdt.Year, yesdt.Month, yesdt.Day);
}
}
本文来自网络上朋友们的帖子,这里进行了一个汇总
取一个月的最后一天日期
int yy = 2005;
int mm = 11;
int Lastday = DateTime.DaysInMonth(yy, mm);
另一种方法
int year = 2005;
int month = 11;
DateTime dt = new DateTime(year,month,1).AddMonths(1).AddDays(-1);
取某一天所在周的最后一天日期
String date = "2007-09-27 ";
SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd ");
Calendar calendar = new GregorianCalendar();
calendar.setTime(sdf.parse(date));
calendar.set(Calendar.DAY_OF_WEEK, calendar.getMaximum(Calendar.DAY_OF_WEEK));
System.out.println(sdf.format(calendar.getTime()));
SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd ");
Calendar calendar = new GregorianCalendar();
calendar.setTime(sdf.parse(date));
calendar.set(Calendar.DAY_OF_WEEK, calendar.getMaximum(Calendar.DAY_OF_WEEK));
System.out.println(sdf.format(calendar.getTime()));
时间比较:
DateTime date1 = new DateTime(2009, 8, 1, 0, 0, 0);
DateTime date2 = new DateTime(2009, 8, 1, 12, 0, 0);
int result = DateTime.Compare(date1, date2);
string relationship;
if (result < 0)
relationship = "is earlier than";
else if (result == 0)
relationship = "is the same time as";
else
relationship = "is later than";
Console.WriteLine("{0} {1} {2}", date1, relationship, date2);
// The example displays the following output:
// 8/1/2009 12:00:00 AM is earlier than 8/1/2009 12:00:00 PM
DateTime date2 = new DateTime(2009, 8, 1, 12, 0, 0);
int result = DateTime.Compare(date1, date2);
string relationship;
if (result < 0)
relationship = "is earlier than";
else if (result == 0)
relationship = "is the same time as";
else
relationship = "is later than";
Console.WriteLine("{0} {1} {2}", date1, relationship, date2);
// The example displays the following output:
// 8/1/2009 12:00:00 AM is earlier than 8/1/2009 12:00:00 PM
时间比较:
while (DateTime.Compare(dtBegin, dtEnd) <= 0)
{
//
while (DateTime.Compare(dtBegin, dtEnd) <= 0)
{
//
//循环主体
//
dtBegin = dtBegin.AddHours(1); //时间相加
}
}
时间相减:
TimeSpan ts = endtime.Subtract(begintime).Duration();