您的位置:首页 > 编程语言 > C#

C#关于日期 月 天数 和一年有多少周及根据某年某周获取时间段的相关计算

2013-07-02 16:02 525 查看
C#中日期相加:

DateTime time = DateTime.Now;

time.AddMilliseconds(1);加一毫秒

time..AddSeconds(1);加一秒

time.AddMinutes(1);加一分钟

time.AddHours(1);加一个小时

time.AddDays(1);加一天

time.AddMonths(1);加一个月

time.AddYears(1);加一年

日期 月 天数 和一年有多少周及根据某年某周获取时间段的相关计算

/// 当前月有多少天

/// </summary>

/// <param name="y"></param>

/// <param name="m"></param>

/// <returns></returns>

public static int HowMonthDay(int y, int m)

{

int mnext;

int ynext;

if (m < 12)

{

mnext = m + 1;

ynext = y;

}

else

{

mnext = 1;

ynext = y + 1;

}

DateTime dt1 = System.Convert.ToDateTime(y + "-" + m + "-1");

DateTime dt2 = System.Convert.ToDateTime(ynext + "-" + mnext + "-1");

TimeSpan diff = dt2 - dt1;

return diff.Days;

}

/**//// <summary>

/// 得到一年中的某周的起始日和截止日

/// 年 nYear

/// 周数 nNumWeek

/// 周始 out dtWeekStart

/// 周终 out dtWeekeEnd

/// </summary>

/// <param name="nYear"></param>

/// <param name="nNumWeek"></param>

/// <param name="dtWeekStart"></param>

/// <param name="dtWeekeEnd"></param>

public static void GetWeek(int nYear, int nNumWeek, out DateTime dtWeekStart, out DateTime dtWeekeEnd)

{

DateTime dt = new DateTime(nYear, 1, 1);

dt = dt + new TimeSpan((nNumWeek - 1) * 7, 0, 0, 0);

dtWeekStart = dt.AddDays(-(int)dt.DayOfWeek + (int)DayOfWeek.Monday);

dtWeekeEnd = dt.AddDays((int)DayOfWeek.Saturday - (int)dt.DayOfWeek + 1);

}

/**//// <summary>

/// 求某年有多少周

/// 返回 int

/// </summary>

/// <param name="strYear"></param>

/// <returns>int</returns>

public static int GetYearWeekCount(int strYear)

{

string returnStr = "";

System.DateTime fDt = DateTime.Parse(strYear.ToString() + "-01-01");

int k = Convert.ToInt32(fDt.DayOfWeek);//得到该年的第一天是周几

if (k == 1)

{

int countDay = fDt.AddYears(1).AddDays(-1).DayOfYear;

int countWeek = countDay / 7 + 1;

return countWeek;

}

else

{

int countDay = fDt.AddYears(1).AddDays(-1).DayOfYear;

int countWeek = countDay / 7 + 2;

return countWeek;

}

}

/**//// <summary>

/// 求当前日期是一年的中第几周

/// </summary>

/// <param name="date"></param>

/// <returns></returns>

public static int WeekOfYear(DateTime curDay)

{

int firstdayofweek = Convert.ToInt32(Convert.ToDateTime(curDay.Year.ToString() + "- " + "1-1 ").DayOfWeek);

int days = curDay.DayOfYear;

int daysOutOneWeek = days - (7 - firstdayofweek);

if (daysOutOneWeek <= 0)

{

return 1;

}

else

{

int weeks = daysOutOneWeek / 7;

if (daysOutOneWeek % 7 != 0)

weeks++;

return weeks + 1;

}

  }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐