如何将现在的时间与数据库里的时间范围进行比较

qq_31595793 2016-01-06 11:16:25
例如现在有一个表叫做Calendar,当中有三个列分别是week、starttime、endtime,现在我获取到了时间,那么怎么样将现在的时间与数据库里的starttime和endtime这个时间段进行比较并返回week的值呢?我写了一个代码,发现没有返回值,求指教,最好是发一个可以实现的代码
...全文
279 6 打赏 收藏 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangxiaomin19921 2016-01-08
  • 打赏
  • 举报
回复
楼主如果是想求得当前日期是本年中的第几周的话可以:

GregorianCalendar gc = new GregorianCalendar();
            int weekOfYear = gc.GetWeekOfYear(DateTime.Now, CalendarWeekRule.FirstDay, DayOfWeek.Monday);
            Console.WriteLine(weekOfYear);
            Console.ReadLine();
是本月的第几周的话可以

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;
        }
  • 打赏
  • 举报
回复
你调试看看 1: DataTable dtWeek = GetDT("select * from Calendar"); 有值么? 2:调试循环部分
xdashewan 2016-01-07
  • 打赏
  • 举报
回复
引用 3 楼 qq_31595793 的回复:
一样的,我都试过,没返回值,另外数据库里有相应的week值的
直接在sql比较区间即可,数据库日期型支持大于小于比较
qq_31595793 2016-01-07
  • 打赏
  • 举报
回复
一样的,我都试过,没返回值,另外数据库里有相应的week值的
myhope88 2016-01-07
  • 打赏
  • 举报
回复
那边不能写return,这一样一写,labe1.text这 一行代码就不会执行啦,将return 换成break
qq_31595793 2016-01-06
  • 打赏
  • 举报
回复
这是我的代码,不知道哪里出问题了,时间的比对是我在网上现学的,可能不对,请指教,我将week在label1里显示,发现并没有任何数据 DateTime NowDay = System.DateTime.Now; DataTable dtWeek = GetDT("select * from Calendar");//getdt是返回一个datatable类型的值的方法 string Week = ""; for (int i = 0; i < dtWeek.Rows.Count; i++) { if (DateTime.Compare(NowDay, Convert.ToDateTime(dtWeek.Rows[i][1])) >= 0 && DateTime.Compare(NowDay, Convert.ToDateTime(dtWeek.Rows[i][2])) <= 0) { Week = dtWeek.Rows[i][0].ToString(); return; } } Label1.Text = Week;

62,270

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧