DateTime用法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 | //今天 DateTime.Now.Date.ToShortDateString(); //昨天,也就是今天的日期减一 DateTime.Now.AddDays(-1).ToShortDateString(); //明天,同理,加一 DateTime.Now.AddDays(1).ToShortDateString(); //本周(要知道本周第一天就得先知道今天是星期几,从而得知 本周第一天就是几天前的那一天;每一周是从周日始至周六止[0-6]) DateTime.Now.AddDays(Convert.ToDouble((0-Convert.ToInt16 (DateTime.Now.DayOfWeek)))).ToShortDateString(); //DateTime.Now.DayOfWeek获得今天是本周的第几天(0<=n<=6) DateTime.Now.AddDays(Convert.ToDouble((6-Convert.ToInt16 (DateTime.Now.DayOfWeek)))).ToShortDateString(); //中文显示星期几 //由于DayOfWeek返回的是数字的星期几,需要把它转换成汉字以方便人们 阅读,有些人会用SWITCH来一个一个地对照,其实我们有更优的策略 string [] Day= new string []{ "星期日" , "星期一" ,星期二 "," 星期三", "星期四" , "星期五" , "星期六" }; Day[Convert.ToInt16(DateTime.Now.DayOfWeek)]; //使用它来获取 //上周,同理,一个周是7天,上周就是本周在减去7天,下周也是一样 DateTime.Now.AddDays(Convert.ToDouble((0-Convert.ToInt16( DateTime.Now.DayOfWeek)))-7).ToShortDateString(); DateTime.Now.AddDays(Convert.ToDouble((6-Convert.ToInt16( DateTime.Now.DayOfWeek)))-7).ToShortDateString(); //下周 DateTime.Now.AddDays(Convert.ToDouble((0-Convert.ToInt16( Datetime.Now.DayOfWeek)))+7).ToShortDateString(); DateTime.Now.AddDays(Convert.ToDouble((6-Convert.ToInt16( DateTime.Now.DayOfWeek)))+7).ToShortDateString(); //本月,本月的第一天是1号,最后一天就是下个月的1号再减一天 DateTime.Now.Year.ToString()+DateTime.Now.Month.ToString( )+ "1" ; //第一天 DateTime.Parse(DateTime.Now.Year.ToString()+DateTime.Now. Month.ToString()+ "1" ).AddMonths(1).AddDays(-1).ToShortDateString(); //最后一天 //巧用C#里ToString的字符格式化更简便 DateTime.Now.ToString( "yyyy-MM-01" ); DateTime.Parse(DateTime.Now.ToString( "yyyy-MM-01" )).AddMonths(1).AddDays (-1).ToShortDateString(); //上个月,减去一个月份 DateTime.Parse(DateTime.Now.ToString( "yyyy-MM-01" )).AddMonths(-1).ToShortDateString(); DateTime.Parse(DateTime.Now.ToString( "yyyy-MM-01" )).AddDays(-1).ToShortDateString(); //下个月,加上一个月份 DateTime.Parse(Datetime.Now.ToString( "yyyy-MM-01" )).AddMonths(1).ToShortDateString(); DateTime.Parse(DateTime.Now.ToString( "yyyy-MM-01" )).AddMonths(2).AddDays(-1).ToShortString(); //7天后 DateTime.Now.Date.ToShortDateString(); DateTime.Now.AddDays(7).ToShortDateString(); //7天前 DateTime.Now.AddDays(-7).ToShortDateString(); DateTime.Now.Date.ToShortDateString(); //本年度,用ToString的字符格式化我们也很容易算出本年度的第一天和最后一天 DateTime.Parse(DateTime.Now.ToString( "yyyy-01-01" )).ToShortDateString(); DateTime.Parse(DateTime.Now.ToString( "yyyy-01-01" )).AddYears(1).AddDays(-1).ToShortString(); //上年度 DateTime.Parse(DateTime.Now.ToString( "yyyy-01-01" )).AddYears(-1).ToShortDateString(); DateTime.Parse(DateTime.Now.ToString( "yyyy-01-01" )).AddDays(-1).ToShortDateString(); //下年度 DateTime.Parse(DateTime.Now.ToString( "yyyy-01-01" )).AddYears(1).ToShortDateString(); DateTime.Parse(DateTime.Now.ToString( "yyyy-01-01" )).AddYears(2).AddDays(-1).ToShortDateString(); //本季度,很多人都会觉得这里是难点,需要写个长长的过程来判断;其实不用的,我们都知道一年四个季度,一个季度三个月 //首先我们把日期推到本季度第一个月,然后这个月的第一天就是本季度的第一天了 DateTime.Now.AddMonths(0-((DateTime.Now.Month-1)%3)).ToString( "yyyy-MM-01" ); //同理,本季度的最后一天就是下个季度的第一天减一 DateTime.Parse.(DateTime.Now.AddMonth(3-((DateTime.Now.Month-1)%3)).ToString( "yyyy-MM-01" )).AddDays(-1).ToShortDateString(); //下季度 DateTime.Now.AddMonths(3-((DateTime.Now.Month-1)%3)).ToString( "yyyy-MM-01" ); DateTime.Parse(DateTime.Now.AddMonths(6-((DateTime.Now.Month-1)%3)).ToString( "yyyy-MM-01" ).AddDays(-1).ToShortDateString(); //上季度 DateTime.Now.AddMonths(-3-((DateTime.Now.Month-1)%3)).ToString( "yyyy-MM-01" ); DateTime.Parse(DateTime.Now.AddMonths(0-((DateTime.Now.Month-1)%3)).ToString( "yyyy-MM-01" ).AddDays(-1).ToShortDateString(); //获得当月有多少天 int m=System.DateTime.DaysInMonth(System.DateTime.Now.Year,System.DateTime.Now.Month); //获取某月的实际工作日(即不包括周六日) //int days=getDays(System.DateTime.Now);调用即可获得 private int getDays(System.DateTime date1) { int m=System.DateTime.DaysInMonth(date1.Year,date1.Month); int mm=0; for ( int i=1;i<=m;i++) { System.DateTime date=Convert.ToDateTime(date1.Year+ "-" +date1.Month+ "-" +i); switch (date.DayOfWeek) { case System.DayOfWeek.Monday: case System.DayOfWeek.Tuessday: case System.DayOfWeek.Wednesday: case System.DayOfWeek.Thursday: case System.DayOfWeek.Friday: mm=mm+1; break ; } } return mm; } //获得任意两日期之间的有效工作日(不包括周六日) DateTime date1=Convert.ToDateTime( "2008-8-8" ); DateTime date2=Convert.ToDateTime( "2008-10-1" ); int days=getDays(date1,date2); //调用如上即可获得 private int getDays(System.DateTime date1,System.DateTime date2) { string m=Microsoft.VisualBasic.DateAndTime.DateDiff(EnumDateCompare.day,date1,date2).ToString( "f0" ); int mm=0; for ( int i=0;i<=Convert.ToInt32(m);i++) { System.DateTime date=Convert.ToDateTime(date1.AddDays(i)); switch (date.DayOfWeek) { case System.DayOfWeek.Monday: case System.DayOfWeek.Tuesday: case System.DayOfWeek.Wednesday: case System.DayOfWeek.Thursday: case System.DayOfWeek.Friday: mm=mm+1; break ; } } return mm; } //格式输出 private void Page_Load( object sender,System.EventArgs e) { System.Globalization.DateTimeFormatInfo myDTFI= new System.Globalization.CultureInfo( "en-US" , false ).DateTimeFormat; //中国为zh-cn DateTime myDT=System.DateTime.Now; Response.Write(myDT.ToString( "f" ,myDTFI)); //获得本周的周六和周日 public static void ConvertDateToWeek(DateTime date, out DateTime firstdate, out DateTime lastdate) { DateTime first System.DateTime.Now; DateTime last=System.DateTime.Now; switch (date.DayOfWeek) { case System.DayOfWeek.Monday: first=date.AddDays(-1); last=date.AddDays(5); break ; case System.DayOfWeek.Tuesday: first=date.AddDays(-2); last=date.AddDays(4); break ; case System.DayOfWeek.Wednesday: first=date.AddDays(-3); last=date.AddDays(3); break ; case System.DayOfWeek.Thursday: first=date.AddDays(-4); last=date.AddDays(2); break ; case System.DayOfWeek.Friday: first=date.AddDays(-5); last=date.AddDays(1); break ; case System.DayOfWeek.Saturday: first=dateAddDays(-6); last=date; break ; case System.DayOfWeek.Sunday: first=date; last=date.AddDays(6); break ; } firstdate=first; lastdate=last; } //调用 DateTime firstdate=System.DateTime.Now; DateTime lastdate=System.Datetime.Now; ConvertDateToWeek(date, out firstdate, out lastdate); //获得当前日期是该年度的第几周 DateTime dt=Convert.ToDateTime( "2008-8-8" ); int weeks=dt.DayOfYear/7+1; |
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)
· .NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想
· Browser-use 详细介绍&使用文档
· 软件产品开发中常见的10个问题及处理方法
· Vite CVE-2025-30208 安全漏洞