.Net 获取当前周是第几周
最近项目中需要获取当前周是今年的第几周,这东西听起来不难,但是还挺有意思的。
在中国,一周是从周一开始算,周天结束,在国外就不是这样了,是从周天到周六为一个周。
有很多种方式去实现在这个功能,下面介绍两种:
一、使用CultureInfo
这种方式,只需要修改CultureInfo里面的参数就行了,美国是en-US,其他国家的自行替换就行。
需要注意的就是,在很多情况下,每年的最后一周是跨年的,一般会当成下一年的第一周来算,这个得需要按业务处理。
public static int GetWeekNumOfTheYear(DateTime date)
{
CultureInfo myCI = new CultureInfo("zh-CN");
Calendar myCal = myCI.Calendar;
CalendarWeekRule myCWR = myCI.DateTimeFormat.CalendarWeekRule;
DayOfWeek myFirstDOW = myCI.DateTimeFormat.FirstDayOfWeek;
int weekOfYear = myCal.GetWeekOfYear(date, myCWR, myFirstDOW);
return weekOfYear;
}
二、使用GregorianCalendar
这种也可以获取不同地区的当前周所在的位置,只需要修改GregorianCalendarTypes就行,可以使用 GregorianCalendarTypes.Localized
public static int GetWeekNumOfTheYear1(DateTime date)
{
//获取指定时间是当年的第几周
GregorianCalendar gc = new GregorianCalendar(GregorianCalendarTypes.USEnglish);
int weekOfYear = gc.GetWeekOfYear(date, CalendarWeekRule.FirstDay, DayOfWeek.Monday);
return weekOfYear;
}
这两种方式都在System.Globalization 命名空间下,使用起来还是比较方便的。
调用方式也很简单,如下,因为业务需要,每年的最后一周是跨年的,需要当成下一年的第一周来算。
public static string GetCurrentWeekNum(DateTime dt)
{
string result = string.Empty;
var dt1 = GetWeekFirstDay(dt);
var dt2 = GetWeekLastDay(dt);
//Whether or not to cross the year
if (dt1.Year == dt2.Year)
{
result = string.Format("{0} W {1}", dt1.Year, GetWeekNumOfTheYear(dt).ToString(""));
}
else
{
result = string.Format("{0} W 01", dt2.Year);
}
return result;
}
.Net 获取当前周是第几周的更多相关文章
- .net 获取当前周及根据年和周获取起始结束时间
获取当前日期周数 int str = new System.Globalization.GregorianCalendar().GetWeekOfYear(System.DateTime.Now, S ...
- PHP获取日期对应星期、一周日期、星期开始与结束日期的方法
本文实例讲述了PHP获取日期对应星期.一周日期.星期开始与结束日期的方法.分享给大家供大家参考,具体如下: /* * 获取日期对应的星期 * 参数$date为输入的日期数据,格式如:2018-6-22 ...
- jq获取今天、昨天、一周时间
不少后台文章管理系统就有今天.明天.一周内.全部的分类展示,用Jquery获取今天.明天.一周内的时间节点(如下图) html页面代码: <div class="date-list-c ...
- php获取当前周的第一天与最后一天
1 2 3 4 5 6 7 8 9 10 // 当前日期 $sdefaultDate = date("Y-m-d"); // $first =1 表示每周星期一为开始日期 ...
- winform中获取当前周次
/*方法一*/ var dt = DateTime.Now; //找到今年的第一天是周几 int firstWeekend = Convert.ToInt32(DateTime.Parse(dt.Ye ...
- PHP获取一段时间内的每个周几, 每月几号, 遇到特殊日子就往后延
2016年11月1日 16:18:19 星期二 主要用到的函数是 strtotime() strtotime('+1 Tuesday', $timestamp) 获取下周二, 从时间戳$timesta ...
- JS中使用时间戳,获取当前日期,计算前一周的日期~
今天项目中用到了一点 随便记录一下 function timestampToTime(timestamp) { );//时间戳为10位需*1000,时间戳为13位的话不需乘1000 var Y = d ...
- Java获取日期属于当年第几周
String today = "2013-01-14"; SimpleDateFormat format = new SimpleDateFormat("yyyy-MM- ...
- Python获取时间范围内日期列表和周列表的函数
1.获取日期列表 # -*- coding=utf-8 -*- import datetime def dateRange(beginDate, endDate): dates = [] dt = d ...
随机推荐
- wpf 窗体添加背景图片
方法一:xaml中:<控件> <控件.Background><ImageBrush ImageSource="/WpfApplication1;compon ...
- LeetCode——Employees Earning More Than Their Managers
The Employee table holds all employees including their managers. Every employee has an Id, and there ...
- Unix/Linux/Mac os下 文件互传
说起文件互传,就不得不提命令scp. 他是Secure copy的缩写,使用ssh连接和加密方式, 如果两台机器之间配置了ssh免密登录, 那在使用scp的时候可以不用输入密码. scp 和 cp ...
- scp文件拷贝简易使用
scp远程复制 属性变化 需要复制所属关系需要用-p选项 源目录复制之后目的目录的属性: srcdrwxr-xr-x. 2 root root 6 9月 4 16:28 2.txt dstdrwxr- ...
- Python语言基础04-构造程序逻辑
本文收录在Python从入门到精通系列文章系列 学完前面的几个章节后,博主觉得有必要在这里带大家做一些练习来巩固之前所学的知识,虽然迄今为止我们学习的内容只是Python的冰山一角,但是这些内容已经足 ...
- 【面试题】了解session和cookie吗?
问题:SESSION与COOKIE的区别? 1.cookie数据存放在客户的浏览器上,session数据放在服务器上. 2.cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKI ...
- Comet 67E: ffort
题目传送门:Comet 67E. 用了个傻逼做法 A 了这题,欢迎观赏睿智做法! 题意简述: 题目说得很清楚了(这次是我不想写了). 题解: 为了方便,令 \(m\) 为敌人数,\(n\) 为己方士兵 ...
- seq命令的使用
标题:seq命令的使用 作用:seq命令用于以指定增量从首数开始打印数字到尾数,即产生从某个数到另外一个数之间的所有整数,并且可以对整数的格式.宽度.分割符号进行控制 语法: [1] seq [选项] ...
- pip安装指定版本的程序的命令
pip安装指定版本的程序的命令 pip install -i https://pypi.douban.com/simple/ django==1.10.3 或者 pip install django= ...
- Mysql基础知识--视图
一.视图的操作 为了提高SQL语句的复用性和操作表的安全性,,MySQL数据库管理系统5提供了视图特性. 视图:本质上是一种虚拟表,其内容与真实的表相似,包含一系列带有名称的行和列数据.但是视图并不在 ...