在oracle中怎么计算当天是本月的第几周?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在oracle中怎么计算当天是本月的第几周?相关的知识,希望对你有一定的参考价值。
在oracle中,通过to_char(sysdate,'w') 获得当天在本月为第几周时,为什么星期六属于下一周,而不是属于上周
这个算法的结果依赖于当前系统时间是什么时候…假设按照你说的,当前系统时间是星期六,那么它计算的结果就是说这个星期六是本月的第几个星期六。就拿12月来说,12月1日是星期六哦,所以你在12月1号查的时候它结果会是1哦,但是12月2日的时候,你查周日,它的结果仍然是1哦,因为是本月第一次出现的星期日哦!只有当你查12月8日的时候,才开始出现结果2哦…其实你可以在系统里选一些特殊的时间查一下就可以发现规律 参考技术A 从当月的第一天开始往后推7天(包括第一天),作为当月的第一周,在这个基础上,再往后推7天就是第二周了,以此类推。C#中周,月,第几周,周开始结束时间de方法总结
1、c#获取当前时间是本年的第几周,本月的第几周
private static int getWeekNumInMonth(DateTime daytime) { int dayInMonth = daytime.Day; //本月第一天 DateTime firstDay = daytime.AddDays(1 - daytime.Day); //本月第一天是周几 int weekday = (int)firstDay.DayOfWeek == 0 ? 7 : (int)firstDay.DayOfWeek; //本月第一周有几天 int firstWeekEndDay = 7 - (weekday - 1); //当前日期和第一周之差 int diffday = dayInMonth - firstWeekEndDay; diffday = diffday > 0 ? diffday : 1; //当前是第几周,如果整除7就减一天 int WeekNumInMonth = ((diffday % 7) == 0 ? (diffday / 7 - 1) : (diffday / 7)) + 1 + (dayInMonth > firstWeekEndDay ? 1 : 0); return WeekNumInMonth; }
2、获取本年的第几周:
GregorianCalendar gc = new GregorianCalendar(); int weekOfYear = gc.GetWeekOfYear(DateTime.Now, CalendarWeekRule.FirstDay, DayOfWeek.Monday); Console.WriteLine(weekOfYear); Console.ReadLine();
3、c#得到本月有几周和这几周的起止时间示例代码
/// <summary> /// 获得本月有几周 /// </summary> /// <param name="a"></param> /// <returns></returns> public void NumWeeks(DateTime dt) { //年 int year = dt.Year; //月 int month = dt.Month; //当前月第一天 DateTime weekStart = new DateTime(year, month, 1); //该月的最后一天 DateTime monEnd = weekStart.AddMonths(1).AddDays(-1); int i = 1; //当前月第一天是星期几 int dayOfWeek = Convert.ToInt32(weekStart.DayOfWeek.ToString("d")); //该月第一周结束日期 DateTime weekEnd = dayOfWeek == 0 ? weekStart : weekStart.AddDays(7 - dayOfWeek); richTextBox2.Text += "第" + i + "周起始日期: " + weekStart.ToShortDateString() + " 结束日期: " + weekEnd.ToShortDateString() + "\n"; //当日期小于或等于该月的最后一天 while (weekEnd.AddDays(1) <= monEnd) { i++; //该周的开始时间 weekStart = weekEnd.AddDays(1); //该周结束时间 weekEnd = weekEnd.AddDays(7) > monEnd ? monEnd : weekEnd.AddDays(7); richTextBox2.Text += "第" + i + "周起始日期: " + weekStart.ToShortDateString() + " 结束日期: " + weekEnd.ToShortDateString() + "\n"; } richTextBox2.Text += year + "年" + month + "月共有" + i + "周\n"; }
4、My97DatePicker日期插件的常用功能说明
http://jingyan.baidu.com/article/e6c8503c7244bae54f1a18c7.html
以上方法均为实际使用,亲测!!!
总结推荐下
各方法出处省略。
以上是关于在oracle中怎么计算当天是本月的第几周?的主要内容,如果未能解决你的问题,请参考以下文章