c#winform中怎么获得上周一的日期

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#winform中怎么获得上周一的日期相关的知识,希望对你有一定的参考价值。

楼上几层的代码都太多了,不用那么复杂。
先跟你说一下原理:
1.国际上的WeekDay是从周日到周六的顺序
2.再说C#的DayOfWeek枚举值是依次从0到6,即周一的枚举值为1
3.算法规律:非周一的就要去获取上周一,而一周有7天。以周一为分界点,当天为周二及往后,则算法为减7天后再减当天N数再加1;周日的话,算法为减7天后再加1。
以此算法规律,可建立获取任意指定日期的上周几的日期的通用方法,代码如下:
pubilc DateTime getWeekUpOfDate(DateTime dt,DayOfWeek weekday,int Number)

int wd1=(int)weekday;
int wd2=(int)dt.DayOfWeek;
return wd2==wd1?dt.AddDay(7*Number):dt.AddDay(7*Number-wd2+wd1);

参数说明:dt为指定的以哪个日期来计算,weekday为计算(上、当前、下)几周的周几
方法调用如下:
DateTime dt=getWeekUpOfDate(DateTime.Now,DayOfWeek.Monday,-1);
这是获取当前日期的上周一的日期
DateTime dt=getWeekUpOfDate(DateTime.Now,DayOfWeek.Monday,-2);
这是获取当前日期的上上周一的日期
DateTime dt=getWeekUpOfDate(DateTime.Now,DayOfWeek.Monday,1);
这是获取当前日期的下周一的日期
DateTime dt=getWeekUpOfDate(DateTime.Now,DayOfWeek.Monday,0);
这是获取本周周一的日期
参考技术A DateTime dateTime= DateTime.Now;//具体你自己调整
while(dateTime.DayOfWeek !=DayOfWeek.Friday)//只要不是周一
dateTime=dateTime.AddDays(-1);//就往回倒退1天

dateTime=dateTime.AddDays(-7);//上周的那一天
参考技术B DateTime dt = DateTime.Now.AddDays(-7);
string result = string.Empty;
switch (dt.DayOfWeek)

case DayOfWeek.Friday:
result = dt.AddDays(-4).ToShortDateString();
break;
case DayOfWeek.Monday:
result = dt.AddDays(0).ToShortDateString();
break;
case DayOfWeek.Saturday:
result = dt.AddDays(-5).ToShortDateString();
break;
case DayOfWeek.Sunday:
result = dt.AddDays(-6).ToShortDateString();
break;
case DayOfWeek.Thursday:
result = dt.AddDays(-3).ToShortDateString();
break;
case DayOfWeek.Tuesday:
result = dt.AddDays(-1).ToShortDateString();
break;
case DayOfWeek.Wednesday:
result = dt.AddDays(-2).ToShortDateString();
break;

//return result;

android日历控件怎么获得所选日期的单元格的焦点

参考技术A android日历控件怎么获得所选日期的单元格的焦点 楼主做好了吗?我也遇到这样的问题 进入时没有焦点 上下左右键移动单元格没有获取所选的日期 都不知道那个日期单元格被选中 楼主知道的话发下我邮箱 1375871525@qq.
C#WinForm 日历控件怎么指定对应日期单元格的背景色
winform论坛里不错,好多 winformer都在那里学习讨论
也有很多教程
如何点击单元格弹出日历控件,选择并输入日期
用VBA做一个代码,可以在选中E2单元格时弹出一个日历控件,选择日期后日历控件就自动隐藏,同时E2单元格显示刚才选中的日期值。 先在工作表中添...
DatetimePicker控件选择日期怎么获取所选日期的时分秒
DatetimePicker 控件选择日期如何获取所选日期的时分秒 DatetimePicker 控件选择日期时,用下面的代码只能获取到例如“2011-7-6 00-00-00”,时分秒显示的是“00-00-00”,如何获取到所选日期的时分秒呢? C# code DateTime payday = Convert.ToDateTime(Pay_Date.SelectedDate); ------解决方案-------------------------------------------------------- 获取秒,你就用DateTime.Now 吧,你获得过去日期的秒有啥用呢 ------解决方案-------------------------------------------------------- 先把控件的format 属性设置为Custom, 然后把CustomFormat 属性设置为yyyy-MM-dd HH:mm:ss ------解决方案-------------------------------------------------------- 你直接这样:DateTime time=DateTime.Now.ToString( yyyy-MM-dd HH:mm:ss );就行了 ------解决方案-------------------------------------------------------- C# code DateTime dt = dateTimePicker1.Value; String strTime = dt.ToString( HH:mm:ss ); Console.Write(strTime);
vba日历控件当选择日期时将控件的值 赋给a1单元格代码如何写

'在日期控件的 change(改变) 事件中编写如下代码[双击日期控件在打开的窗口中粘贴如下代码]'Private Sub DTPicker1_Change() Sheets("工作表名称").Cells(1, 1) = DTPicker1End Sub

如何缩小日历控件与日期输入单元格之间的距离
Private Sub MonthView1_DateClick(ByVal DateClicked As Date) '点击日期控件后,把日期填充在。。。
ActiveCell = MonthView1.Value
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 5 And Target.Row = 5 Then ''点击e列5行单元格弹出日期控件
MonthView1.Visible = True
MonthView1.Top = Range("a1", ActiveCell).Height '应该与这两句有关系
MonthView1.Left = Range("a1", ActiveCell).Width '应该与这两句有关系
Else
MonthView1.Visible = False
End If
End Sub
'这个用的是monthview control, version 6.0控件
'还有一个是DTPicker1控件,在类似一个下拉列表里填充日期,日期不能清空
用UICollectionView写的日历控件怎么自行设置可选日期
如何设置UICollectionView 初始偏移 如题,我希望能够在进入UICollectionViewController的时候,collectionView的内容就已经滚动到我需要的位置
求EXCEL日历控件代码: 我只要在某个单元格插入日历控件,在点击此单元格时才显示日历,其他情况隐藏。
把日历控件的Visible属性设置为False,就能隐藏了
当要显示时,把日历控件的Visible设置为True,然后它的left,,height,width设置成Range的相应值,就能在那个单元格显示
用EXCEL日历控件选定日期值的单元格能作为函数运算的参数吗
可以,进入设计模式,属性里有个参数叫LINKEDCELL,指定一个单元格,那个单元格就是控件选中的日期值
PS:一分都不给,太小气了........

以上是关于c#winform中怎么获得上周一的日期的主要内容,如果未能解决你的问题,请参考以下文章

C#winform程序卡死后 自动关闭后重启 怎么做

c#winform打印窗体内容 win7下同下编译 xp系统显示问题

C# winform Win7 C盘读写文件 没有权限

PHP怎样获得最近一个周一和上周一的日期?

java 获得本周一到周五的日期

c # 初学者 win32 API转型者,c# 的winform的消息机制是啥?以及它的主线,为啥没有消息循环??