为了在程序中生成的当前时间是第几周的判断结果与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转化相同相关推荐

  1. oracle中year类型吗,为什么表名this_year_end+next_year在Oracle数据库中无效?()

    下列关于妇好的说法,不正确的一项是( ). 一个初创团队要考虑有哪些类型的角色? π线和σ线在垂直于磁场方向传播时,是什么偏振态的光? 分析程序:下列程序执行后的结果是什么?#include int ...

  2. oracle中md5算法,oracle数据库中存储过程使用MD5算法加密

    一.技术点 1. DBMS_OBFUSCATION_TOOLKIT.MD5 DBMS_OBFUSCATION_TOOLKIT.MD5是MD5编码的数据包函数,但偶在使用select DBMS_OBFU ...

  3. Oracle数据库中有关记录个数的查询

    一.查询表中全部的记录个数 可用两种方法,一种是在oracle的系统表中统计,另一种需要写存储过程统计,方法分别如下. 1.系统表中统计: SELECT sum(num_rows) FROM user ...

  4. oracle sql比较时间大小,Oracle数据库中日期时间的操作比较和加减

    Oracle数据库中日期时间的操作比较和加减 Oracle关于时间/日期的操作 1.日期时间间隔操作 当前时间减去7分钟的时间 select sysdate,sysdate - interval '7 ...

  5. oracle时间24小时格式转换,在oracle数据库中查询时间并转为24小时制--------------String转Date类型或者Date转String类型...

    1.在Oracle数据库中查询时间的时候,首先就是把日期从date类型的转化为String类型的. 2.将date类型的转成String类型的,直接调用传入date类型的参数,返回String类型的字 ...

  6. oracle转换当前时间,oracle数据库中时间转化方法分享

    摘要: 下文讲述oracle数据库中时间转化方法分享,如下所示: 一.toChar 1.取得当前日期是本月的第几周 select to_char(sysdate,'W') from dual; sel ...

  7. Oracle数据库中调用Java类开发存储过程、函数的方法

    Oracle数据库中调用Java类开发存储过程.函数的方法 时间:2014年12月24日  浏览:5538次 oracle数据库的开发非常灵活,不仅支持最基本的SQL,而且还提供了独有的PL/SQL, ...

  8. ef oracle 双引号,Oracle 数据库中字符串和日期必须使用双引号标识。

    Oracle 数据库中字符串和日期必须使用双引号标识. 更多相关问题 平面的投影规律是什么 下列有关生活给水管网水力计算的叙述中,错误的是( ). 下列______材料消耗不属于预算定额中材料必须消耗 ...

  9. oracle中call用法,Oracle数据库中 call 和 exec的区别

    Oracle数据库中 call 和 exec的区别 今天发现了一个小东西,觉得很有意思,查找了一些资料,跟大家分享一下: 在sqlplus中: 在第三方提供的工具(如:plsqldev) 总结: ex ...

最新文章

  1. iOS开发- OpenGL ES屏幕截图
  2. linux grep命令 例子,14个grep命令使用例子
  3. mysql变量string_mysql sql语句有变量 time_t变量转换为string
  4. sql运算符_SQL AND运算符解释语法示例
  5. 评分模型和额度模型的两种不同应用场景
  6. ArcMap操作技巧
  7. 聚类分析 距离 matlab,matlab聚类分析_matlab
  8. SPRAY 光谱光线追迹仿真软件
  9. 建立ad-hoc网络 // 电脑设置wifi热点 (Win10)
  10. Matlab的一些常用功能
  11. 麻省理工学院(MIT)发明漏洞自动修复系统
  12. JRE和JDK的区别(笔记)
  13. 基于ResNet的猫十二分类
  14. SDN控制器技术综述:SDN交换机配置技术与控制技术的关系—Vecloud
  15. Poto Editor for Mac(mac照片编辑器)
  16. springboot项目扫描不到controller中的解决方法
  17. ifconfig 命令详解
  18. 开启hadoop报错:localhost: Permission denied(publickey,gssapi-keyex,gssapi-with-mic,password).
  19. 贝壳找房值百亿美元吗?
  20. java abstrict class,java - implements Closeable或实现AutoCloseab

热门文章

  1. 单进程机器码hook_游戏外挂编程三之游戏进程钩子
  2. 【算法笔记】二叉树遍历模板递归+非递归
  3. python换衣服_GAN入门:5分钟学会行人换衣生成
  4. 卷积神经网络CNN+唐宇迪博士CNN课程学习笔记
  5. JavaWeb运行环境安装教程以及各个安装包
  6. 第十二节 电路识图 从Arduino开始讲起
  7. 【好书推荐】你想要的编码规范都在这里 | 《代码整洁之道》
  8. Windows小技巧 -- 批处理文件实现目录下文件批量打包压缩
  9. oracle 天转换成月函数_oracle数据库月份差函数
  10. [temp]Nginx 错误502 upstream sent too big header while reading response header from upstream