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;
}

时间: 2024-08-02 16:20:06

C#时间函数扩展(计算第几周和周起止日期)的相关文章

C#时间函数扩展

函数 //本周是本年第几周 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(da

Linux时间时区、常用时间函数、整形时间计算思路详解

Linux时间时区详解与常用时间函数 时间与时区 整个地球分为二十四时区,每个时区都有自己的本地时间. Ø  UTC时间 与 GMT时间 我们可以认为格林威治时间就是时间协调时间(GMT = UTC),格林威治时间和UTC时间都用秒数来计算的. Ø  UTC时间与本地时间 UTC + 时区差 = 本地时间 时区差东为正,西为负.在此,把东八区时区差记为 +0800 UTC + (+0800) = 本地(北京)时间 Ø  UTC与Unix时间戳 在计算机中看到的UTC时间都是从(1970年01月0

内联函数!计算时间问题

问题描述 内联函数!计算时间问题 //====================================== //内联函数有内,计算时间差 //====================================== #include #include using namespace std; int cale1(int a,int b){ return a+b; } inline int cale2(int a,int b){ return a+b; } int main(){ in

第13周报告2:定义自定义函数,计算sin和cos的近似值

任务2:先听故事,再编程序.故事是这样的:话说sin和cos是一对夫妇.一天,sin去听相声了,cos在家.过了一会,有人敲门,cos开门一看,是一个不认识的多项式函数.cos问:你是谁啊?他说:我是你的老公sin啊.cos说:你不是去听相声了吗?怎么成这幅摸样了?他说:是啊,太乐了!故事讲完了.不懂吗?好好学高数.否则,挂了不冤.   编程序求出sin(π/2).cos(87°) 程序的要求是这样的:(1)求sin.cos时,不能用数学库函数(即不得用#include<Cmath>),而是自

js获取时间函数及扩展函数的方法_javascript技巧

内置的Date函数 var mydate = new Date(); mydate.getYear(); //获取当前年份(2位) mydate.getFullYear(); //获取完整的年份(4位,1970-????) mydate.getMonth(); //获取当前月份(0-11,0代表1月) mydate.getDate(); //获取当前日(1-31) mydate.getDay(); //获取当前星期X(0-6,0代表星期天) mydate.getTime(); //获取当前时间(

ASP中的时间函数详细介绍

函数 Date 函数描述:返回当前系统日期.语法:Date DateAdd 函数描述:返回已添加指定时间间隔的日期. 语法:DateAdd(interval, number, date)interval: 必选.字符串表达式,表示要添加的时间间隔.有关数值,请参阅"设置"部分. number: 必选.数值表达式,表示要添加的时间间隔的个数.数值表达式可以是正数(得到未来的日期)或负数(得到过去的日期). date: 必选.Variant 或要添加 interval 的表示日期的文字.

asp的日期时间函数

Date 函数描述:返回当前系统日期.语法:Date DateAdd 函数描述:返回已添加指定时间间隔的日期. 语法:DateAdd(interval, number, date)interval: 必选.字符串表达式,表示要添加的时间间隔.有关数值,请参阅"设置"部分. number: 必选.数值表达式,表示要添加的时间间隔的个数.数值表达式可以是正数(得到未来的日期)或负数(得到过去的日期). date: 必选.Variant 或要添加 interval 的表示日期的文字. int

asp中的一些日期时间函数

本文提供vbscript时间函数的概要介绍,可应对一般应用,具体特殊需求可进一步搜索. date() 获取日期,格式:2004-2-28 time() 获取时间,格式:22:24:59 now() 获取日期和时间 格式: 2005-5-2 22:37:30 d=date() 获取年份:year(d) 获取月份:month(d) 获取日子:day(d) 获取星期几:weekday(d) t=time() 获取小时:hour(t) 获取分钟:minute(t) 获取秒数:second(t) 日期相加

SQL时间函数

  --日期转换参数 select CONVERT(varchar, getdate(), 120 )2004-09-12 11:06:08 select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')20040912110608 select CONVERT(varchar(12) , getdate(), 111 )2004/09/12 select CONVERT(varch