程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> C#時間函數擴展(計算第幾周和周起止日期)

C#時間函數擴展(計算第幾周和周起止日期)

編輯:關於C#

2008-07-08 15:30
private int DatePart(System.DateTime dt)
{
int weeknow = Convert.ToInt32(dt.DayOfWeek);//今天星期幾
int daydiff = (-1) * (weeknow+1);//今日與上周末的天數差
int days = System.DateTime.Now.AddDays (daydiff).DayOfYear;//上周末是本年第幾天
int weeks = days/7;
if(days%7 != 0)
{
weeks++;
}
//此時,weeks為上周是本年的第幾周
return (weeks+1);
}

//本周起止日期

private string WeekRange(System.DateTime dt)
{
int weeknow = Convert.ToInt32(dt.DayOfWeek);
int daydiff = (-1) * weeknow;
int dayadd = 6- weeknow;
string dateBegin = System.DateTime.Now.AddDays(daydiff).Date.ToString ("MM月dd日");
string dateEnd = System.DateTime.Now.AddDays (dayadd).Date.ToString("MM月dd日");
return dateBegin + " - " +dateEnd;
}

//計算第幾周(重新修改後)
public int GetWeekOfCurrDate(DateTime dt)
{
int Week = 1;
int nYear = dt.Year;
System.DateTime FirstDayInYear = new DateTime(nYear, 1, 1);
System.DateTime LastDayInYear = new DateTime(nYear, 12, 31);
int DaysOfYear = Convert.ToInt32(LastDayInYear.DayOfYear);
int WeekNow = Convert.ToInt32(FirstDayInYear.DayOfWeek) - 1;
if (WeekNow < 0) WeekNow = 6;
int DayAdd = 6 - WeekNow;
System.DateTime BeginDayOfWeek = new DateTime(nYear, 1, 1);
System.DateTime EndDayOfWeek = BeginDayOfWeek.AddDays(DayAdd);
Week = 2;
for (int i = DayAdd + 1; i <= DaysOfYear; i++)
{
BeginDayOfWeek = FirstDayInYear.AddDays(i);
if (i + 6 > DaysOfYear)
{
EndDayOfWeek = BeginDayOfWeek.AddDays(DaysOfYear - i - 1);
}
else
{
EndDayOfWeek = BeginDayOfWeek.AddDays(6);
}

if (dt.Month == EndDayOfWeek.Month && dt.Day <= EndDayOfWeek.Day)
{
break;
}
Week++;
i = i + 6;
}
return Week;
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved