获取指定期间的起止日期(年、月、周、日)

在软件开发过程中,我们常常会遇到让用户根据日期条件进行查询的问题。通常,我们会放置两个 DateTimePicker 控件让用户自由选择。但是,如果用户需要经常查询指定期间的数据,那么分别指定期间的起止日期就会比较繁琐。如果我们能将常用的几个标准期间预置到软件中,则会让用户方便不少。下面是我的解决方案:

///

1<summary>
2
3///  声明期间类型枚举 
4
5///  </summary>

public enum Period {Day, Week, Month, Year};

///

1<summary>
2
3///  获取指定期间的起止日期 
4
5///  </summary>

///

1<param name="period"/>

期间类型

///

1<param name="beginDate"/>

开始日期

///

1<param name="endDate"/>

结束日期

public static void GetPeriod(Period period, out DateTime beginDate,

out DateTime endDate)

{

int year = DateTime.Today.Year;

int month = DateTime.Today.Month;

switch (period)

{

case Period.Year: // 年

beginDate = new DateTime(year, 1, 1);

endDate = new DateTime(year, 12, 31);

break ;

case Period.Month: // 月

beginDate = new DateTime(year, month, 1);

endDate = beginDate.AddMonths(1).AddDays(-1);

break ;

case Period.Week: // 周

int week = ( int )DateTime.Today.DayOfWeek;

if (week == 0) week = 7; // 周日

beginDate = DateTime.Today.AddDays(-(week - 1));

endDate = beginDate.AddDays(6);

break ;

default : // 日

beginDate = DateTime.Today;

endDate = DateTime.Today;

break ;

}

}


// 调用示例
DateTime beginDate, endDate;

GetPeriod(Period.Year, out beginDate, out endDate);

Published At
Categories with Web编程
Tagged with
comments powered by Disqus