C# Net 计算周(可正推和逆推)

拷贝代码(方法):

        /// <summary>
/// 计算周
/// </summary>
/// <param name="Time">一个时间点,用来计算周(必须有年月日)</param>
/// <param name="WeekCount">推测的周数量</param>
/// <param name="Add">是正推(加)还是负推(减)</param>
/// <param name="ThisWeek">是否包含此时间点所在的周</param>
/// <returns></returns>
public static List<TimeWeek> GetTimeWeek(DateTime Time, int WeekCount, bool Add, bool ThisWeek)
{
List<TimeWeek> timeWeeks = new List<TimeWeek>();
TimeWeek week = new TimeWeek();
week.Week = ConvertWeekOfYear(Time);
int dayOfTheWeek = (int)Time.DayOfWeek;
int CountLength = dayOfTheWeek == ? : dayOfTheWeek;
//如果包含当前周,就加入到返回列表.同时推算的周数减一
if (ThisWeek)
{
DateTime mon = Time.Date.AddDays( - CountLength);//本周一
DateTime sun = Time.Date.AddDays( - CountLength).AddDays().AddSeconds(-);//本周日
week.BeginTime = mon;
week.EndTime = sun;
timeWeeks.Add(week);
WeekCount--;
}
if (Add)
{
for (int i = ; i <= WeekCount; i++)
{
DateTime mon = Time.Date.AddDays( - CountLength + i * );//往前推的周数计算星期一
DateTime sun = Time.Date.AddDays( - CountLength + i * ).AddDays().AddSeconds(-);
TimeWeek Downweek = new TimeWeek();
Downweek.Week = ConvertWeekOfYear(mon);
Downweek.BeginTime = mon;
Downweek.EndTime = sun;
timeWeeks.Add(Downweek);
}
}
else
{
for (int i = ; i <= WeekCount; i++)
{
DateTime mon = Time.Date.AddDays( - CountLength - i * );//往回推的周数计算星期一
DateTime sun = Time.Date.AddDays( - CountLength - i * ).AddDays().AddSeconds(-);
TimeWeek upweek = new TimeWeek();
upweek.Week = ConvertWeekOfYear(mon);
upweek.BeginTime = mon;
upweek.EndTime = sun;
timeWeeks.Add(upweek);
}
}
return timeWeeks.OrderBy(t => t.BeginTime).ToList();
} /// <summary>
/// 返回指定年份的周
/// </summary>
/// <param name="time"></param>
/// <returns></returns>
public static int ConvertWeekOfYear(DateTime time)
{
System.Globalization.GregorianCalendar gc = new System.Globalization.GregorianCalendar();
return gc.GetWeekOfYear(time, System.Globalization.CalendarWeekRule.FirstDay, DayOfWeek.Monday);
}

拷贝代码(自定义类):

    /// <summary>
/// 时间周
/// </summary>
public class TimeWeek
{
/// <summary>
/// 第几周(从开年的1月1日计算)
/// </summary>
public int Week { get; set; }
/// <summary>
/// 这周的开始时间(一般是周一)
/// </summary>
public DateTime BeginTime { get; set; }
/// <summary>
/// 这周的结束时间(一般是周日)
/// </summary>
public DateTime EndTime { get; set; }
}

C# Net 计算周(可正推和逆推)的更多相关文章

  1. 安卓推送——个推服务端api使用误区

    首先你需要在个推开放着平台上注册你的应用,以及获得以下几个必要的值APPID |APPKEY | MASTERSECRET,本文假设你已经完成上述步骤以及完成客户端SDK的集成. 原理 个推服务端ap ...

  2. uva10537 dijkstra + 逆推

    21:49:45 2015-03-09 传送 http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8& ...

  3. HDU 1176-免费馅饼(DP_逆推)

    免费馅饼 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  4. java SDK服务端推送 --极光推送(JPush)

    网址:https://blog.csdn.net/duyusean/article/details/86581475 消息推送在APP应用中越来越普遍,来记录一下项目中用到的一种推送方式,对于Andr ...

  5. iOS 之消息推送(个推)---个人小结

    前言:自从上个星期开始整这个推送,弄了差不多一个星期,今天终于给整好了,因此现在来记录这段"奇妙"的旅程. 我们公司使用的消息推送是用的第三方--个推,这里不得不说一下,个推的技术 ...

  6. 个推+DCLOUD,推送消息和透传消息

    DCLOUD方案中集成了个推方案,最好是用个推来做推送相关的东西 消息分2类: 1.推送消息,这种一般会出现在手机的最上面的通知栏,用户是肯定会知道的 2.透传消息,这种一般就是一个Alert提示框, ...

  7. atitit.web 推送实现方案集合(2)---百度云,jpush 极光推送 ,个推的选型比较.o99

    atitit.web 推送实现方案集合(2)---百度云,jpush 极光推送 ,个推的选型比较.o99 1.1. 云推送有推送次数或频率的限制吗? 1 1.2. 推送的消息长度 1 1.3. 离线消 ...

  8. IOS中程序如何进行推送消息(本地推送,远程推送)2(上)

    未看过本地推送的,可以提前看一下本地推送. http://www.cnblogs.com/wolfhous/p/5135711.html =============================== ...

  9. UVA116Unidirectional TSP(DP+逆推)

    http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=18206 题意:M*N的数阵,从左边一列到右边一列走过的数的和的最小.并输出路 ...

随机推荐

  1. Tableau 练习题

    1.练习一 1. 提出问题:对某个学校或者一个城市的教育水平进行评估,或者多个学校的教育水平进行比较 指标:学生考试成绩 根据考试成绩高低判断教育水平:影响因素:学生餐饮,从多个维度分析,各城市在不同 ...

  2. pytest--fixture

    前戏 fixture是在测试函数运行前后,由pytest执行的外壳函数.fixture中的代码可以定制,满足多变的测试需求,包括定义传入测试中的数据集.配置测试前系统的初始状态.为批量测试提供数据源等 ...

  3. 动态规划 | DAG最长路

    1.矩形嵌套 查了很久的错,最后发现是ans在每次测试样例输入的时候没有初始化为0 . AC代码: #include <stdio.h> #include <memory.h> ...

  4. Windows / Office - KMS激活

    Windows / Office - KMS激活 支持Windows操作系统,支持Office软件:包括Windows 10,Office 2016:包括VL版本和MSDN版. (UPDATE: Of ...

  5. django实战(三)--删除和批量删除

    上一节我们完成了带分页的模糊查询,本节我们继续删除操作. 同样的,先给出各个模块的代码(上一节的就不在贴出了):urls.py path('curd/delete/',views.curd_delet ...

  6. pg_sql常用查询语句整理

    #pg_sql之增删改查 #修改: inset into table_name (id, name, age, address ) select replace(old_id,old_id,new_i ...

  7. SpringBoot第十四篇:统一异常处理

    作者:追梦1819 原文:https://www.cnblogs.com/yanfei1819/p/10984081.html 版权声明:本文为博主原创文章,转载请附上博文链接! 引言   本文将谈论 ...

  8. 编译和安装openssl

    linux安装了Python3.7之后, pip不好用了,报错如下: pip is configured with locations that require TLS/SSL, however th ...

  9. WebStorm开发Vue自定义标签提示是未知标签解决办法

    打开 File -> Settings -> File Types 在右侧的窗口中找到Vue.js Template 并选中,在下面的窗口中添加 *.vue 即可解决问题. 修改后

  10. FutureTask源码2

    @SuppressWarnings({"unchecked","restriction"}) public class FutureTask1<V> ...