.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 ...
随机推荐
- centos7 下面显卡驱动安装
一.安装驱动 屏蔽默认的nouveau cd /lib/modprobe.d/ sudo vim dist-blacklist.conf 将nvidiafb注释掉 #blacklist nvidiaf ...
- Transformer模型---encoder
一.简介 论文链接:<Attention is all you need> 由google团队在2017年发表于NIPS,Transformer 是一种新的.基于 attention 机制 ...
- Ubuntu下部署Shipyard管理docker
使用k8s对于我这种新人来说,难度有点大.遂尝试使用Shipyard这个docker web ui工具来进行管理,以方便入门. 首先,我们还是需要在我们的主机上安装docker. 然后官方提供了自动安 ...
- appium自动化常用API
常用函数 一.获得信息类API (1)获取当前页面的activity名,比如: (.ui.login.ViewPage) current_activity() 比如我们需要实现这个登录的功能时,主要 ...
- 201871010133-赵永军《面向对象程序设计(java)》第十六周学习总结
201871010133-赵永军<面向对象程序设计(java)>第十六周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...
- socket服务
1.socket_server import socket import threading server = socket.socket(socket.AF_INET, socket.SOCK_ST ...
- oracle查看被锁的表及解除锁
-- 查看被锁对象 select object_name,machine,s.sid,s.serial# from v$locked_object l,dba_objects o ,v$session ...
- 【使用篇二】SpringBoot访问静态资源(4)
默认的,SpringBoot会从两个地方查找静态资源: classpath/static 的目录下 ServletContext 根目录下 一.classpath/static 的目录 在类路径下常见 ...
- [LeetCode] 35. Search Insert Position 搜索插入位置
Given a sorted array and a target value, return the index if the target is found. If not, return the ...
- IDEA中把普通的Java项目转换成gradle项目
1.在该项目的跟目录下创建build.gradle 和 settings.gradle文件,内容如下: build.gradle: plugins { id 'java' } group 'coco' ...