C#实现的根据日期得到今天是星期几
算法如下:
基姆拉尔森计算公式: W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7
在公式中d表示日期中的日数,m表示月份数,y表示年数。注意:在公式中有个与其他公式不同的地方:
把一月和二月看成是上一年的十三月和十四月,例:如果是2004-1-10则换算成:2003-13-10来代入公式计算。
但是在测试的时候发现有点出入,就是公式存在一点问题,得稍做修改:
W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7 +1
#region 根据年月日计算星期几(Label2.Text=CaculateWeekDay(2004,12,9);)
/// <summary>
/// 根据年月日计算星期几(Label2.Text=CaculateWeekDay(2004,12,9);)
/// </summary>
/// <param name="y">年</param>
/// <param name="m">月</param>
/// <param name="d">日</param>
/// <returns></returns>
public static string CaculateWeekDay(int y,int m, int d)
{
if(m==) m=;
if(m==) m=;
int week=(d+*m+*(m+)/+y+y/-y/+y/)%+;
string weekstr="";
switch(week)
{
case : weekstr="星期一"; break;
case : weekstr="星期二"; break;
case : weekstr="星期三"; break;
case : weekstr="星期四"; break;
case : weekstr="星期五"; break;
case : weekstr="星期六"; break;
case : weekstr="星期日"; break;
} return weekstr;
}
#endregion
一周从周日算起
DateTime mDatetime=new DateTime(year,,);//year为要求的那一年
int firstweekfirstday=Convert.ToInt32(mDTime.DayOfWeek);//一年中第一天是周几
days=(double)(-firstweekfirstday);
DateTime secondweekfisrtday=mDTime.AddDays(days);第二周一
fisrtday=MDatetime.AddDays(week*);//第N周第一天
lastday=MDatetime.AddDays(week*+);//第N周最后一天 一周从周一算起
DateTime mDatetime=new DateTime(year,,);//year为要求的那一年
int firstweekfirstday=Convert.ToInt32(mDTime.DayOfWeek);//一年中第一天是周几
days=(double)(-firstweekfirstday);
DateTime secondweekfisrtday=mDTime.AddDays(days);第二周一
fisrtday=MDatetime.AddDays(week*);//第N周第一天
lastday=MDatetime.AddDays(week*+);//第N周最后一天 javascript:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<SCRIPT LANGUAGE="JavaScript" type="text/javascript">
function showDateCount(year,weekNum){
var date=new Date(year,,(*weekNum));
var FD=new Date(date.getYear(),(date.getMonth()),(date.getDate()-date.getDay()+))
var Monday=FD.getYear()+"-"+(FD.getMonth()+)+"-"+FD.getDate()//一周的第一天 var LD=new Date(date.getYear(),(date.getMonth()),(date.getDate()-date.getDay()+))
var Sunday=LD.getYear()+"-"+(LD.getMonth()+)+"-"+LD.getDate() //一周的最后一天
alert(year+"年第"+weekNum+"周是"+Monday+"至"+Sunday)
}
</SCRIPT>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD> <BODY>
<input type="text" value="" size="" name="year">年<input type="text" name="weekNum" value="" size="">
<input type="button" name="GO" value="Click" onClick="showDateCount(year.value,weekNum.value)"> </BODY>
</HTML> c#
//monthCalendar1是日历控件
System.Globalization.ChineseLunisolarCalendar c = new ChineseLunisolarCalendar();
private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e)
{
DateTime MySelectDate = e.End;
txt_nonglidate.Text = string.Format(CultureInfo.InstalledUICulture, "{0}-{1}-{2}", c.GetYear(MySelectDate), c.GetMonth(MySelectDate), c.GetDayOfMonth(MySelectDate));
}
C#实现的根据日期得到今天是星期几的更多相关文章
- JS判断日期是否在同一个星期内,和同一个月内
今天要用到判断日期是否在同一个星期内和是否在同一个月内,在网上找了好一会儿也没找到合适的,然后自己写了一个方法来处理这个问题,思路就不详细介绍了,直接附上代码,自己测试了一下 没有问题,若有问题请在评 ...
- js日期计算及快速获取周、月、季度起止日,获取指定日期周数以及星期几的小例子
JS获取日期时遇到如下需求,根据某年某周获取一周的日期.如开始日期规定为星期四到下一周的星期五为一周. 格式化日期: function getNowFormatDate(theDate) { var ...
- mysql 输出当前月所有日期与对应的星期
其实可以用存储过程,但想用另一种方法实现: 首先创建一个辅助表,可以设置CREATE TABLE `t4` ( `id` ) NOT NULL AUTO_INCREMENT, `num` ) DEFA ...
- extjs4.0下的日期控件的星期显示为y的解决办法
没有修改的时候的问题: 今天第一次写博客,就记录一下以前extjs4.2下运用日期组件的星期显示问题,当时找了n久,可能是extjs4.2才出来没多久,没有多少人发现这个问题或者说很少有人将Extjs ...
- JS日历,可获得指定日期周数及星期几
需求来自一个朋友:编写一个简易日历.在文本框中输入要查找的日期,程序可以计算出这一天处在该年份的第几周,并且能判断出这一天到底是星期几. 应为要有交互,选择了Js来实现,也算是 结对编程 的初试吧. ...
- mysql select日期格式
mysql表中datatime类型存储为2016-01-10,C#直接select 后,在datatable里面看,变成01/10/2016,需要还原回去,使用select DATE_FORMAT(列 ...
- 在MonthCalendar控件中选中日期
Calendar.MONTH Calendar now=Calendar.getInstance();System.out.print(now.get(Calendar.MONTH));得到的月份少1 ...
- Swift根据日期字符串返回日期是星期几
最近在做的一个IOS项目中需要根据日期得出日期代表的是星期几,日期以字符串的形式获得,于是该方法可以简单描述如下: /* * 根据日期格式字符串返回日期代表星期几 * 参数:dateTime,字符串类 ...
- 日期函数(sql)
SQL 标量函数----->日期函数 day() .month().year().2009年02月23日 星期一 11:30 SQL 标量函数----->日期函数 day() .month ...
随机推荐
- Visualbox安装Ubuntu网络设置
注意:Windows 10在安装Visualbox后,创建的Ubuntu系统只有32位的,没有64位供选择,原因是Windows 10系统自带的Hyper-V系统占用了CPU虚拟化技术,解决的方法是取 ...
- sonarQube6.1 升级至6.2
在使用sonarQube6.1一段时间后,今天才发现sonarQube6.2已经更新,为了尝鲜,我决定在本机先尝试一下,如何升级至6.2 在这里,根据站点提示的升级步骤 1.下载新版本sonarQub ...
- Codeforces 1036E. Covered Points
又一次写起了几何.... 特殊处理在于有可能出现多条线段交于一点的情况,每次考虑时,对每条线段与其他所有线段的交点存在一个set里,对每一个set,每次删除set.size()即可 重点在于判断两条线 ...
- hadoop遇到的问题(汇总)
1. 如果Map和reduce的输出不一致,需要显示的设置Map的输出,没有根据参数进行推导的原因是类型擦除 combiner是在copy数据到机器之前可以进行的一些数据的合并,这和数据有关,不是所有 ...
- ( 转 ) mysql复合索引、普通索引总结
对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分.例如索引是key index (a,b,c). 可以支持a | a,b| a,b,c 3种组合 ...
- 微信小程序开发教程(五)开发框架:MINA
微信团队为小程序提供的框架命名为MINA应用框架.MINA框架通过封装微信客户端提供的文件系统.网络通信.任务管理.数据安全等基础功能,对上层提供一整套JavaScript API,让开发者能够非常方 ...
- [CTSC2018]混合果汁(二分答案+主席树)
考场上写了60分的二分答案,又写了15分的主席树,然后就弃了.. 合起来就A了啊!主席树忘了开20倍空间最后还炸掉了. 最水的签到题被我扔了,主要还是不会用线段树求前缀和. 做法应该是比较显然的,首先 ...
- 前端基础-HTML简介及发展史
一 HTML简介 二 HTML发展史 一. HTML简介 用户使用浏览器打开网页看到结果的过程就是:浏览器将服务端的文本文件(即网页文件)内容下载到本地,然后打开显示的过程. 而文本文件的文档结构只有 ...
- YS端对端之间SSL通信安全问题
1.简介: 传统的互联网,SSL通信主要基于客户端和服务器之间,在物联网时代,端和端之间的加密通信将变得很普遍,在YS业务中主要的端和端通信为: (1).客户端(移动APP,YS工作 ...
- oracle 11g jdbc jar包在哪个文件目录
一. 如果装了oracle数据库的话, 大致是这样的目录: D:\oracle\product\11.2.0\client_1\oui\jlib\classes12.jar 或者 D:\o ...