年、周、日期计算

[MSSQL]日期集合-周、月、季度、年等计算以及自定义函数 以下为网上收集和自己工作中写的一些方法现整理如下: SQL --本周第一天 SELECT DATEADD(Day,1-(DATEPART(Weekday,getdate())+@@DATEFIRST-1)%7,getdate()) --or select dateadd(wk, datediff(wk,0,getdate()), 0) --本周第一天 select dateadd(w 阅读详情
 
  1. /// <summary>   
  2. /// 获取一年中指定的一周的开始日期和结束日期。开始日期遵循ISO 8601即星期一。   
  3. /// </summary>   
  4. /// <remarks>Write by vrhero</remarks>   
  5. /// <param name="year">年(1 到 9999)</param>   
  6. /// <param name="weeks">周(1 到 53)</param>   
  7. /// <param name="weekrule">确定首周的规则</param>   
  8. /// <param name="first">当此方法返回时,则包含参数 year 和 weeks 指定的周的开始日期的 System.DateTime 值;如果失败,则为 System.DateTime.MinValue。如果参数 year 或 weeks 超出有效范围,则操作失败。该参数未经初始化即被传递。</param>   
  9. /// <param name="last">当此方法返回时,则包含参数 year 和 weeks 指定的周的结束日期的 System.DateTime 值;如果失败,则为 System.DateTime.MinValue。如果参数 year 或 weeks 超出有效范围,则操作失败。该参数未经初始化即被传递。</param>   
  10. /// <returns>成功返回 true,否则为 false。</returns>   
  11. public static bool GetDaysOfWeeks(int year, int weeks, CalendarWeekRule weekrule, out DateTime first, out DateTime last)  
  12. {  
  13.     //初始化 out 参数   
  14.     first = DateTime.MinValue;  
  15.     last = DateTime.MinValue;  
  16.   
  17.     //不用解释了吧...   
  18.     if (year < 1 | year > 9999)  
  19.         return false;  
  20.   
  21.     //一年最多53周地球人都知道...   
  22.     if (weeks < 1 | weeks > 53)  
  23.         return false;  
  24.   
  25.     //取当年首日为基准...为什么?容易得呗...   
  26.     DateTime firstCurr = new DateTime(year, 1, 1);  
  27.     //取下一年首日用于计算...   
  28.     DateTime firstNext = new DateTime(year + 1, 1, 1);  
  29.   
  30.     //将当年首日星期几转换为数字...星期日特别处理...ISO 8601 标准...   
  31.     int dayOfWeekFirst = (int)firstCurr.DayOfWeek;  
  32.     if (dayOfWeekFirst == 0) dayOfWeekFirst = 7;  
  33.   
  34.     //得到未经验证的周首日...   
  35.     first = firstCurr.AddDays((weeks - 1) * 7 - dayOfWeekFirst + 1);  
  36.   
  37.     //周首日是上一年日期的情况...   
  38.     if (first.Year < year)  
  39.     {  
  40.         switch (weekrule)  
  41.         {  
  42.             case CalendarWeekRule.FirstDay:  
  43.                 //不用解释了吧...   
  44.                 first = firstCurr;  
  45.                 break;  
  46.             case CalendarWeekRule.FirstFullWeek:  
  47.                 //顺延一周...   
  48.                 first = first.AddDays(7);  
  49.                 break;  
  50.             case CalendarWeekRule.FirstFourDayWeek:  
  51.                 //周首日距年首日不足4天则顺延一周...   
  52.                 if (firstCurr.Subtract(first).Days > 3)  
  53.                 {  
  54.                     first = first.AddDays(7);  
  55.                 }  
  56.                 break;  
  57.             default:  
  58.                 break;  
  59.         }  
  60.     }  
  61.     //得到未经验证的周末日...   
  62.     last = first.AddDays(7).AddSeconds(-1);  
  63.     switch (weekrule)  
  64.       {  
  65.            case CalendarWeekRule.FirstDay:  
  66.                //周末日是下一年日期的情况...    
  67.                if (last.Year > year)  
  68.                    last = firstNext.AddSeconds(-1);  
  69.                else if (last.DayOfWeek != DayOfWeek.Monday)  
  70.                    last = first.AddDays(7 - (int)first.DayOfWeek).AddSeconds(-1);  
  71.                break;  
  72.            case CalendarWeekRule.FirstFourDayWeek:  
  73.                 //周末日距下一年首日不足4天则提前一周...    
  74.                if (last.Year > year && firstNext.Subtract(first).Days < 4)  
  75.                   {  
  76.                       first = first.AddDays(-7);  
  77.                       last = last.AddDays(-7);  
  78.                   }  
  79.                break;  
  80.            default:  
  81.                break;  
  82.       }  
  83.    return true;  
  84. }  

        /// <summary>
        /// 获取指定日期在某年的周数  

        /// </summary>
        /// <param name="dt"></param>
        /// <returns></returns>
        private int GetWeekOfYear(DateTime dt)
        {

            GregorianCalendar gc = new GregorianCalendar();

            return gc.GetWeekOfYear(dt, CalendarWeekRule.FirstDay, DayOfWeek.Monday);

        }

 

 

从零到一:STM32 CubeMX与WS2812B的DMA驱动艺术 本文详细介绍了如何使用STM32 CubeMX和DMA技术驱动WS2812B RGB LED灯条,从硬件设计到软件实现的全过程。通过CubeMX配置定时器和DMA,实现高效的PWM波形生成与数据传输,解决传统GPIO控制资源占用高的问题。文章还提供了颜色编码、动画效果实现及常见问题解决方案,助力开发者快速掌握智能LED控制技术。 阅读详情

相关推荐

CentOS8静默安装Oracle11.2.0.1

背景 新安装oracle,用静默安装方式就不需要安装图形界面了,省时省力。 前期准备工作与图形化安装一样,如创建用户|用户组、环境变量、内核参数、创建目录等. 可参考图形化安装,链接:https://blog.youkuaiyun.com/heroicpoem/article/details/104229369 环境 平台 版本 操作系统 centOS 8 Oracle 11gR2 1.响应文件 响应文件的内容就是图形化安装时手工设置的选项内容。 解压后,database/response/db

heroicpoem的专栏 4518

IOS 日期的计算(根据服务器返回的年份和周次 计算出周次对应的日期范围)

近日 根据公司项目需求折腾掉了半条命呀直接上图 大致解释一下功能的需求: 展示用户的练习历史数据,首先先说明一下服务器的数据返回结构和逻辑,就拿“周”来说吧,本地会每次分页请求十条数据,服务器便返回有数据的十条周次的数据给我,比如我去年一年

KevinQueen的专栏 2835

微信h5 支付,已经获得weixin://wap/pay?prepayid,但是无法调起微信客户端支付

结果几个接口,最终获得到到一直包含调起微信客户端的支付链接 但是直接打开这个页面,却不能调起微信客户端支付,原因是,在打开新页面的时候,需要设置a.rel = "noreferrer"; <body> <a href="javascript:void(0)" onclick="openNewWindowNoreferrer(this)">点击支付</a&...

qq_31683775的博客 4万+

python 指定月份的天数、指定日期为周几、指定月份有几个周日、闰年 calender

python 指定月份的天数、指定日期为周几、指定月份有几个周日、闰年 calender 1、指定月份的天数 import calendar import datetime as dt date1 = dt.date(2020, 9, 1) n_days = calendar.monthrange(2020, 9) # 返回结果:(1, 30) # calendar.monthrange(year,month):第一个参数:指定月份第一天为周几(0-6 对应 周一 -周日);第二个参数:指定月份的天数

Silenceyezi的博客 1906

RK3588上跑通Zipformer语音识别的3个坑与填坑实录(附完整编译命令)

本文详细记录了在RK3588开发板上部署Zipformer语音识别模型时遇到的三个典型问题及其解决方案,包括静态库版本冲突、编译脚本配置错误以及模型转换精度调优。文章提供了完整的编译命令和实战步骤,帮助开发者快速在边缘设备上实现高效的语音识别应用。

l6m7n8的博客 715

高通Camera PDAF调试实战:从Type2到Type3的避坑指南与Log分析技巧

本文深入解析高通Camera平台PDAF调试实战,重点对比Type2与Type3的核心差异,提供详细的配置迁移方案和Log分析技巧。针对常见兼容性问题如对焦速度变慢、低光失效等,给出具体解决方案,并分享性能优化案例与高级调试工具链,帮助开发者快速提升PDAF调试效率。

weixin_29164185的博客 413

LocalDate获取一年的周数,及指定周数周一到周日对应得日期

java8如何获取一年拥有的周数及周数对应的日期 下面是一个测试的例子 public class TestWeekNumAndDate { /** * @param args */ public static void main(String[] args) { //初始化,第一周至少四天 WeekFields wfs= WeekFields.of(DayOfWeek.MON...

三千炼心的博客 1万+

航天仿真必看:如何用SOFA库实现高精度GCRS-ITRS坐标转换?避坑指南

本文深入解析了航天仿真中高精度GCRS-ITRS坐标转换的关键技术,重点介绍了SOFA库在天球系与轨道系转换中的权威应用。通过对比传统方法的误差来源,详细阐述了SOFA库的转换算法优势、工程实现步骤及误差控制策略,为航天器轨道仿真提供毫米级精度的解决方案。

7h6j5k4l3的博客 850

C#中与日期相关的操作

//枚举类型,设置首周的规则public enum CalendarWeekRule:int{    FirstDay,    FirstFullWeek,    FirstFourDayWeek,}    ///        /// 获取一年中指定的一周的开始日期和结束日期。

lockelk的专栏 900

18650电池组流体直冷热管理仿真:COMSOL多物理场耦合建模路线与实战策略

在动力电池与储能系统的热管理设计中,多物理场耦合仿真已成为平衡性能与成本的关键工具。液冷方案的换热极限促使行业转向制冷剂直冷技术,而两相流与电池产热的强耦合特性,使得基于COMSOL的数值建模成为评估系统温升与流动分配的重要手段。工程实践中,电化学-热-流场全耦合模型与集总电池-流场简化模型各有适用场景,前者揭示电池内部微观机理,后者则以高计算效率支撑包级方案迭代。通过合理简化几何、标定内阻与熵热系数、设置等效换热边界,仿真能够准确预测直冷系统在快充或大倍率放电下的温度均匀性与压降特性,从而指导流道优化与制

weixin_33585822的博客 314

玩转Docker小游戏项目系列:Docker部署吃豆人经典小游戏

玩转Docker小游戏项目系列:Docker部署吃豆人经典小游戏

jks212454的博客 733

获得指定日期的周开始时间和周结束时间

工作中遇到一个关于时间的问题,获得指定日期的周开始时间和周结束时间。 比如输入任意一个时间,即可获得到这个时间的所在周的开始时间和结束时间。      public static string GetWeekNumber(DateTime dtPassed)         {             string displyDate = string.Empty;             t

码农, 农民工的程序人生 1121

GEE:基于自定义的年度时序数据集进行LandTrendr变化检测

本文介绍了使用年度时序数据进行LandTrendr变化检测的方法,包括核心函数调用、参数设置和结果可视化。通过筛选参数(年份、变化幅度和持续时间)对结果进行过滤,输出变化年份、变化幅度和持续时间。代码提供了完整的处理流程,包括数据输入、LandTrendr算法运行、结果筛选与可视化,并支持结果导出。适用于基于Google Earth Engine平台的地表变化检测分析。

养乐多的博客 752

java-计算任意日期所在周、月、年的第一天与最后一天

/** * 该模块可实现自动计算当前日期对应的周,月,年的第一天与最后一天日期,并且可直接指定当前日期为任意日期。 * * @author Administrator * */public class DateTerminator {// 获取当前日期所在周的上下界public final static int CURRENT_WEEK = 0;// 获取当前日期上一周的上下界public fin

k769444252的博客 4887

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

python-根据给定的时间范围计算年、季、月、周的开始和结束日期

1.根据给定的日期字符串,获取当天所在年、季度、月、周的开始和结束日期 def get_first_and_last_day(date_str): """ 获取指定日期的开始、结束日期 :param date_str: 字符串格式 '2020-08-21' :param need_key: 字符串格式 'year','quarter' :return: """ result = {} struct_date = datetime.datetim

生有涯,知无涯 5946

已经年,第x周,计算这周的开始日期与结束日期

2、 已知年,第x周,获取这一周的周日与周六日期(一周起始时间为周日) /** * 计算某年某周的开始日期 * @param yearNum * 格式 yyyy ,必须大于1900年度 小于9999年 * @param weekNum * 1到52或者53 * @return 日期,格式为yyyy-MM-dd ...

远去的渡口 270

使用PHP实现计算两个日期间隔的年、月、周、日数

使用PHP实现计算两个日期间隔的年、月、周、日数: <?php function format($a,$b){ //检查两个日期大小,默认前小后大,如果前大后小则交换位置以保证前小后大 if(strtotime($a)>strtotime($b)) list($a,$b)=array($b,$a); $start = strtot

zhxp_870516的专栏 3646

Mysql 日期和时间加减及日期计算相差年、月、周、日数整理

Mysql 日期和时间加减及日期计算相差年、月、周、日数整理 1、日期和时间加减 select now()-- 获取当前具体的日期和时间 2019-11-13 16:38:20 select curdate()-- 获取当前日期 2019-11-13 select curtime()-- 获取当前时间 6:38:20 1.1、MySQL加减某个时间间隔 设置当前...

helloxiaozhe的博客 9万+

js 根据n年第n周,获取此周的开始和结束日期;根据年季度获取开始日期结束日期

1、根据年周获取周的开始日期和结束日期 // 第n年的第n周,获取开始和结束时间 (星期一为一周的开始),例如2020-1 function week_date(weekstr){ let year = weekstr.split("-")[0] let weekNo = weekstr.split("-")[1] // 此年1号是星期几 let oneday = new Date(year+'-01-01').getDay() //0-6 // 方便计算,当为星

menghuannvxia的专栏 975

php 两个日期相差几周,探讨:如何使用PHP实现计算两个日期间隔的年、月、周、日数...

使用PHP实现计算两个日期间隔的年、月、周、日数:. 代码如下:function format($a,$b){//检查两个日期大小,默认前小后大,如果前大后小则交换位置以保证前小后大if(strtotime($a)>strtotime($b)) list($a,$b)=array($b,$a);$start = strtotime($a);$stop = strtotime($b);$...

weixin_39550379的博客 138

java日期加减秒_Java日期——年、月、日、时、分、秒、周加减计算

Java日期——年、月、日、时、分、秒、周加减计算Java日期——年、月、日、时、分、秒、周加减计算1.Pom依赖joda-timejoda-time2.9.92.示例代码package com.example.demo.controller;import org.joda.time.DateTime;import java.text.SimpleDateFormat;import java.ut...

weixin_36403587的博客 1153

php 计算日期间隔年,使用PHP实现计算两个日期间隔的年、月、周、日数

function format($a,$b){//检查两个日期大小,默认前小后大,如果前大后小则交换位置以保证前小后大if(strtotime($a)>strtotime($b)) list($a,$b)=array($b,$a);$start = strtotime($a);$stop = strtotime($b);$extend = ($stop-$start)/86400;$r...

weixin_32066337的博客 574

取两个日期相差几年_【Tableau小钉子】1226:指定日期的日、周、月、年的同比环比计算?...

经常在Tableau交流群里看到,有新学习Tableau的朋友纠结于日、周、月、年的同比和环比的计算,觉得可以分享一点经验,就来聊聊通过指定的日期来计算日、周、月、年的同比环比在Tableau里的实现方法。(以下示例采用Tableau Desktop 2020.4实现)首先打开Tableau Desktop,加载”示例-超市”数据源中的”订单”表。通常,新学习Tableau的朋友在各种教...

weixin_39771351的博客 1381

php计算两个日期之间的小时数,php计算两个日期间隔的年、月、周、日数的代码示例...

1,计算两个日期间隔的年、月、周、日数,代码如下:复制代码 代码示例:/*** 计算两个日期间隔的年、月、周、日数* edit www.jbxue.com*/function format($a,$b){//检查两个日期大小,默认前小后大,如果前大后小则交换位置以保证前小后大if(strtotime($a)>strtotime($b)) list($a,$b)=array($b,$a);$s...

weixin_30069911的博客 211

python时间计算 周开始第一天和结束天 通过年周计算

摘要 该代码提供了三个函数用于处理日期和周数转换: year_mon_for_check根据年份和周数返回该周最后一天(周日)的月份; get_num_week获取指定年周的周一和周日日期(格式为年-月-日); get_year_week解析日期字符串返回对应的年份、周数及月份,并校验是否为未来日期。 注意事项包括周数范围(0-52)、时区处理(手动加8小时)和跨年周问题。优化建议使用标准时区库并封装日期校验逻辑。

Sunshine的博客 1598

php两日期月数,php计算两个日期间隔的年、月、周、日数的代码示例

/*** 计算两个日期间隔的年、月、周、日数* edit bbs.it-home.org*/function format($a,$b){//检查两个日期大小,默认前小后大,如果前大后小则交换位置以保证前小后大if(strtotime($a)>strtotime($b)) list($a,$b)=array($b,$a);$start = strtotime($a);$stop = strt...

weixin_30456153的博客 221
上一篇: C#基础--之数据类型
下一篇: C# 调用外部dll
迷途笛音
博客等级 码龄19年 27粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值