c#中计算当前时间是今年第几周 与ORACLE数据库中ww转化相同
为了在程序中生成的当前时间是第几周的判断结果与ORCAL中的相同。因为在做周报 ,周报统计的数据计算周数是数据库算的,列表页面又是C#定时任务。
原有的C#计算当前时间是第几周的方法是这样的
GregorianCalendar gc = new GregorianCalendar();int weekOfYear = gc.GetWeekOfYear(DateTime.Now, CalendarWeekRule.FirstDay, DayOfWeek.Monday);
C#中是这样计算:
2022年1月1号是周六 是第一周 weekOfYear =1
2022年1月3号是周一 是第二周 weekOfYear =2
数据库中是这样计算
to_char(sysdate, 'WW')
to_char(sysdate, 'IW')
注意在这里进行一下区分IW WW两种格式
IW:
IW是指的自然周的计算方法
例如:
sysdate=2022年1月1号
2022年1月1号是周六 to_char(sysdate, ‘IW’)= 0
2022年1月3号是周一 to_char(sysdate+3, ‘IW’) =1
那么对于数据库来说第一周其实是1月3号那一周,它是以第一个周一来当第一个完整周。可想而知前面几天就丢掉了。
WW:
指的是2022年1月1号是周六 那么1月1号算第一周 1月8号是第二周
2022年1月1号是周六 to_char(sysdate, ‘WW’)= 1
2022年1月3号是周一 to_char(sysdate+3, ‘WW’) =1
2022年1月3号是周一 to_char(sysdate+7, ‘WW’) =2
为了在C#中能计算出的周数与数据库相同于是这样写:
思路梳理 :首先算出今天是今年的第几天 (下文代码中的yearcountday ) 再用yearcountday 除 7 取整数+1 就能得到与数据库中WW算法相同的周数
int yearcountday = 0;int week = 0;for (int i = 1; i <= DateTime.Now.Month; i++){string day = DateTime.Now.Year.ToString() + "-" + (i + 1).ToString() + "-01";DateTime dateTime = Convert.ToDateTime(day).AddDays(-1);if (i == DateTime.Now.Month){dateTime = DateTime.Now;}//dateTime.Day代表这个月有多少天yearcountday += dateTime.Day;}week =( yearcountday / 7) +1;
c#中计算当前时间是今年第几周 与ORACLE数据库中ww转化相同相关推荐
- oracle中year类型吗,为什么表名this_year_end+next_year在Oracle数据库中无效?()
下列关于妇好的说法,不正确的一项是( ). 一个初创团队要考虑有哪些类型的角色? π线和σ线在垂直于磁场方向传播时,是什么偏振态的光? 分析程序:下列程序执行后的结果是什么?#include int ...
- oracle中md5算法,oracle数据库中存储过程使用MD5算法加密
一.技术点 1. DBMS_OBFUSCATION_TOOLKIT.MD5 DBMS_OBFUSCATION_TOOLKIT.MD5是MD5编码的数据包函数,但偶在使用select DBMS_OBFU ...
- Oracle数据库中有关记录个数的查询
一.查询表中全部的记录个数 可用两种方法,一种是在oracle的系统表中统计,另一种需要写存储过程统计,方法分别如下. 1.系统表中统计: SELECT sum(num_rows) FROM user ...
- oracle sql比较时间大小,Oracle数据库中日期时间的操作比较和加减
Oracle数据库中日期时间的操作比较和加减 Oracle关于时间/日期的操作 1.日期时间间隔操作 当前时间减去7分钟的时间 select sysdate,sysdate - interval '7 ...
- oracle时间24小时格式转换,在oracle数据库中查询时间并转为24小时制--------------String转Date类型或者Date转String类型...
1.在Oracle数据库中查询时间的时候,首先就是把日期从date类型的转化为String类型的. 2.将date类型的转成String类型的,直接调用传入date类型的参数,返回String类型的字 ...
- oracle转换当前时间,oracle数据库中时间转化方法分享
摘要: 下文讲述oracle数据库中时间转化方法分享,如下所示: 一.toChar 1.取得当前日期是本月的第几周 select to_char(sysdate,'W') from dual; sel ...
- Oracle数据库中调用Java类开发存储过程、函数的方法
Oracle数据库中调用Java类开发存储过程.函数的方法 时间:2014年12月24日 浏览:5538次 oracle数据库的开发非常灵活,不仅支持最基本的SQL,而且还提供了独有的PL/SQL, ...
- ef oracle 双引号,Oracle 数据库中字符串和日期必须使用双引号标识。
Oracle 数据库中字符串和日期必须使用双引号标识. 更多相关问题 平面的投影规律是什么 下列有关生活给水管网水力计算的叙述中,错误的是( ). 下列______材料消耗不属于预算定额中材料必须消耗 ...
- oracle中call用法,Oracle数据库中 call 和 exec的区别
Oracle数据库中 call 和 exec的区别 今天发现了一个小东西,觉得很有意思,查找了一些资料,跟大家分享一下: 在sqlplus中: 在第三方提供的工具(如:plsqldev) 总结: ex ...
最新文章
- iOS开发- OpenGL ES屏幕截图
- linux grep命令 例子,14个grep命令使用例子
- mysql变量string_mysql sql语句有变量 time_t变量转换为string
- sql运算符_SQL AND运算符解释语法示例
- 评分模型和额度模型的两种不同应用场景
- ArcMap操作技巧
- 聚类分析 距离 matlab,matlab聚类分析_matlab
- SPRAY 光谱光线追迹仿真软件
- 建立ad-hoc网络 // 电脑设置wifi热点 (Win10)
- Matlab的一些常用功能
- 麻省理工学院(MIT)发明漏洞自动修复系统
- JRE和JDK的区别(笔记)
- 基于ResNet的猫十二分类
- SDN控制器技术综述:SDN交换机配置技术与控制技术的关系—Vecloud
- Poto Editor for Mac(mac照片编辑器)
- springboot项目扫描不到controller中的解决方法
- ifconfig 命令详解
- 开启hadoop报错:localhost: Permission denied(publickey,gssapi-keyex,gssapi-with-mic,password).
- 贝壳找房值百亿美元吗?
- java abstrict class,java - implements Closeable或实现AutoCloseab
热门文章
- 单进程机器码hook_游戏外挂编程三之游戏进程钩子
- 【算法笔记】二叉树遍历模板递归+非递归
- python换衣服_GAN入门:5分钟学会行人换衣生成
- 卷积神经网络CNN+唐宇迪博士CNN课程学习笔记
- JavaWeb运行环境安装教程以及各个安装包
- 第十二节 电路识图 从Arduino开始讲起
- 【好书推荐】你想要的编码规范都在这里 | 《代码整洁之道》
- Windows小技巧 -- 批处理文件实现目录下文件批量打包压缩
- oracle 天转换成月函数_oracle数据库月份差函数
- [temp]Nginx 错误502 upstream sent too big header while reading response header from upstream