日期和字符串一样,都不能改变自身的值
1System.DateTimed=System.DateTime.Now;
2System.Console.WriteLine(d.AddDays(1));
3System.Console.WriteLine(d.AddHours(1));
4System.Console.WriteLine(d.AddMilliseconds(1));
5System.Console.WriteLine(d.AddMinutes(1));
6System.Console.WriteLine(d.AddMonths(1));
7System.Console.WriteLine(d.AddYears(1));
8System.Console.WriteLine(d);//d没有改变值
9d=d.AddYears(1);//需要重新赋值
一些关于日期的算法要牢记
1System.Console.WriteLine(d.AddDays(-(d.Day-1)));//本月第一天
2System.Console.WriteLine(d.AddDays(-d.Day));//上月最后一天
3System.Console.WriteLine(d.AddDays(-(int)d.DayOfWeek));//本周第一天
ok,我们来看一个例子:
1System.DateTimedt=newSystem.DateTime(1949,10,1);
2System.Console.WriteLine(dt.ToLongDateString());
3System.DateTimed=System.DateTime.Now;
4inttoDay=d.Day;
5intthisMonth=d.Month;
6System.Console.WriteLine("当前日期:{0}",d.Date);
7d=d.AddDays(-(toDay-1));
8System.Console.WriteLine("该月第一天:{0}",d.Date);
9
10do
11{
12stringtoDayFlag="";
13if(d.Day==toDay)
14{
15toDayFlag="*";
16}
17System.Console.WriteLine("{0}:{1}{2}",d.Day,d.DayOfWeek,toDayFlag);
18d=d.AddDays(1);
19}
20while(d.Month==thisMonth);
上面例子输出本月的所有日期和星期,并在当日标注*
那么开始巩固知识:
设一企业合同约定每月5号发工资,请输出该企业今年实际每月发工资的日期(若5号是周六或周日,则工资提前到周五发)
1System.DateTimedt=System.DateTime.Now;
2dt=dt.AddDays(-(dt.DayOfYear-1));
3System.Console.WriteLine("该年第一天:{0}",dt.Date);
4dt=dt.AddDays(4);
5intiDay=0;
6System.Console.WriteLine("定位到第一个月的5号:{0}",dt.Date);
7do
8{
9if(dt.Month!=5&&dt.Month!=10)
10{
11if(dt.DayOfWeek==System.DayOfWeek.Saturday)
12{iDay=-1;}
13if(dt.DayOfWeek==System.DayOfWeek.Sunday)
14{iDay=-2;}
15}
16else
17{iDay=-5;}
18System.Console.WriteLine("{0}月的发薪水日期是{1}",
19dt.Month,dt.AddDays(iDay).Date);
20dt=dt.AddMonths(1);
21iDay=0;
22}
23while(dt.Year==System.DateTime.Now.Year);
设每年9.1开学,若9.1不是星期一,则要求开学日期改为9月的第一个星期一,请输出从1980-2004年的每年开学日期
1//方案1
2System.DateTimedt=newSystem.DateTime(1949,9,1);
3System.DateTimetmpdt;
4do
5{
6if(dt.DayOfWeek==System.DayOfWeek.Monday)
7{tmpdt=dt;}
8else
9{
10if(dt.DayOfWeek==System.DayOfWeek.Sunday)
11{tmpdt=dt.AddDays(1);}
12else
13{tmpdt=dt.AddDays(7-(int)dt.DayOfWeek+1);}
14}
15System.Console.WriteLine("{0}年的9.1是{1}",dt.Year,dt.DayOfWeek);
16System.Console.WriteLine("所以实际开学日期是:{0}",tmpdt.Date);
17System.Console.WriteLine("------------------------");
18dt=dt.AddYears(1);
19}
20while(dt.Year<=System.DateTime.Now.Year);
21
22
23//方案2
24System.DateTimedt=newSystem.DateTime(1949,9,1);
25System.DateTimetmpdt;
26do
27{
28if((int)dt.DayOfWeek<2)
29{tmpdt=dt.AddDays(1-(int)dt.DayOfWeek);}
30else
31{
32tmpdt=dt.AddDays(7-(int)dt.DayOfWeek+1);
33}
34System.Console.WriteLine("{0}年的9.1是{1}",dt.Year,(int)dt.DayOfWeek);
35System.Console.WriteLine("所以实际开学日期是:{0}",tmpdt.Date);
36System.Console.WriteLine("------------------------");
37dt=dt.AddYears(1);
38}
39while(dt.Year<=System.DateTime.Now.Year);
注意方案2的第29行,使用了01互换的方法,简化了周日和周一的计算
计算给定日期的年的每个月的周数
1System.DateTimetmpdt=newDateTime(year,1,1);
2inttmpMonth=tmpdt.Month;//记录当前月
3int[]weeks=newint[12];//每个元素存放每月的星期数量
4do
5{
6do
7{//如果是周六就加1
8if(tmpdt.DayOfWeek==System.DayOfWeek.Saturday)
9{
10weeks[tmpMonth-1]=weeks[tmpMonth-1]+1;
11}
12tmpdt=tmpdt.AddDays(1);//下一天
13}
14while(tmpdt.Month==tmpMonth);//月循环
15if(tmpdt.Day==1&&tmpdt.DayOfWeek!=System.DayOfWeek.Sunday)
16{//如果每月的第一天不是周日,则上月再加一周
17weeks[tmpMonth-1]=weeks[tmpMonth-1]+1;
18}
19tmpMonth=tmpdt.Month;
20}
21while(tmpdt.Year==year);//年循环
22for(inti=0;i<=weeks.Length-1;i++)
23{
24System.Console.WriteLine("{0}年{1}月有{2}周",year,i+1,weeks[i]);
25}
分享到:
相关推荐
在网上搜到的,还不错的日期插件,直接引用即可,方便快捷,适合系统输入日期用。 如何使用jquery的日期插件 * 引入jquery的js文件 <script type="text/javascript" src="../js/jquery-1.4.2.js"></script> * ...
日期时间控件,出错,害人了..日期时间控件,出错,害人了..日期时间控件,出错,害人了..日期时间控件,出错,害人了..日期时间控件,出错,害人了..日期时间控件,出错,害人了..日期时间控件,出错,害人了..日期...
Java日期工具类 1、日期的各种格式化 2、获取当前年度 3、获取当前月份 4、获取当前天号数 5、获取当前时间往前推一个月的时间 6、获取上个月("MMM yyyy") 7、获取上个月("yyyymm") 8、获取上个月("yyyy-mm") 9、...
万能日期正则表达式 (适用于各种日期样式) 适用于 yyyy(或yy)-(或空格)MM(或MMM,比如Jan,Feb..) dd HH:mm:ss(后面还可以选择性显示时间) <br>顺序也可以是各式各样的 可以月份提前 MM(MMM)-dd-...
本文实例讲述了js实现获取两个日期之间所有日期的方法。分享给大家供大家参考,具体如下: [removed] function getDate(datestr){ var temp = datestr.split("-"); var date = new Date(temp[0],temp[1],temp[2])...
1 返回农历year年中哪个月是闰月,没有闰月返回0 2 返回农历year年闰月的天数(如果没有闰月则返回0) 3 返回农历year年的总天数 4 返回农历year年month月的天数 ...10 阳历日期转农历日期 11 日期转化周几
修改插件默认显示日期为当前日期,可以修改默认日期为指定日期
日历控件 出生日期选择控件 js日期选择控件 专门是作为选择出生日期的 ,默认是当前日期的前30年左右,也就是上网最多的年龄段,而非一开始就默认是当前日期!
Date.prototype.Format 日期格式化 Date.prototype.DateAdd 日期计算 Date.prototype.DateDiff 比较日期差 Date.prototype.toString 日期转字符串 Date.prototype.toArray 日期分割为数组 Date.prototype.DatePart ...
将数字日期转换成中文日期的工具类。eg:2014-07-15会转换成二零一四年七月十五日。
日期加天数,日期减天数得到一个新日期,及两个日期天数相减得到一个天数,纯C语言,不用time.h库,不要加其它库函数。
首先需要说明的一点,无论是Winform,还是Webform,都有很成熟的日历控件,无论从易用性还是可扩展性上看,日期的选择和校验还是用日历控件来实现比较好。 前几天在CSDN多个版块看到需要日期正则的帖子,所以整理了...
查看日期查看日期查看日期查看日期查看日期查看日期查看日期查看日期查看日期查看日期查看日期查看日期查看日期查看日期查看日期查看日期查看日期查看日期查看日期查看日期查看日期查看日期查看日期查看日期查看日期...
WdatePicker是基于JavaScript开发的日期选择插件,具有以下组件和特点: 日历控件:WdatePicker提供一个日历控件,可以在网页中方便地选择日期。用户可以通过单击或手动输入日期来选择所需的日期。 丰富的选择功能...
handsontable 日期控件 中文日期 日期汉化 handsontable 日期控件 中文日期 日期汉化 handsontable 日期控件 中文日期 日期汉化
VBA文本日期转换日期_长日期转短日期
js日期时间格式化js日期时间格式化js日期时间格式化js日期时间格式化js日期时间格式化js日期时间格式化js日期时间格式化js日期时间格式化
pb10.5及以下版本程序在win7下日期栏位无法用选(则没法弹出可选日期画面或位置移到最左边) 1.pb10.5及以下版本日期下拉功能重写 2.win7下日期栏无用PB自带下拉日期属性 (按PB11.5模式处理) 完美解决 日期栏 下拉...
开发的时候经常遇到一种情况,就是要求用户输入日期。为了限定用户输入的格式,保证输入日期的正确,需要从日历上选择日期,然后把选择的日期放到容器中去。 本实例介绍了.net下两种日期选择的方法。 一种是纯...
VC/MFC 使用 日期控件 设置、获取 日期时间信息