我希望在sql sever 2005或c#中获取2011年9月的星期日日期。 所以结果应该是 2011年4月9日 11/9/2011 18/9/2011 25/9/2011
答案 0 :(得分:2)
首先,我会在当月的第一天创建一个DateTime
。
从那里,我选择DayOfWeek
属性,做一些数学运算(减去/加)以找到与你想要的日期匹配的那一周的正确日期。
从那里开始,我会继续调用DateTime.AddDays(7)
,然后返回这些值,直到月份属性翻转为止。
我会编写一个执行此操作的函数,需要一年,一个月和一个DayOfWeek
。每个值都会返回IEnumerable<DateTime>
和yield return
。
这样的事情:
using System;
using System.Collections.Generic;
class Program
{
static void Main(string[] args)
{
foreach (var date in DayOfWeek.Monday.OccurrencesInMonth(year: 2011, month: 8))
{
Console.WriteLine(date);
}
}
}
public static class DayOfWeekExtensions
{
public static IEnumerable<DateTime> OccurrencesInMonth(this DayOfWeek targetDayOfWeek, int year, int month)
{
var firstDayInYear = new DateTime(year, month, 1);
var currentDay = firstDayInYear.Next(targetDayOfWeek);
while (currentDay.Month == month)
{
yield return currentDay;
currentDay = currentDay.AddDays(7);
}
}
}
public static class DateTimeExtensions
{
public static DateTime Next(this DateTime current, DayOfWeek dayOfWeek)
{
int offsetToNextOccurrence = dayOfWeek - current.DayOfWeek;
if (offsetToNextOccurrence < 0)
offsetToNextOccurrence += 7;
return current.AddDays(offsetToNextOccurrence);
}
}
8/1/2011 12:00:00 AM 8/8/2011 12:00:00 AM 8/15/2011 12:00:00 AM 8/22/2011 12:00:00 AM 8/29/2011 12:00:00 AM
答案 1 :(得分:0)
.NET C#
DateTime dateValue = new DateTime(2008,6,11); Console.WriteLine((int)dateValue.DayOfWeek); //显示3
从MSDN上搜索
答案 2 :(得分:0)
我真的不明白你想要什么。但我会回答,因为我认为我理解。
我们在您的代码中执行此操作的所有内容: 此代码适用于C#
DateTime time = DateTime.Now;
string timenow;
你可以这样做 - timenow = time.timeofday.tostring(); 女巫将给我们:21:44:15.3487 或者我们可以做 - timenow = time.ToLongDateString(); 它会给我们约会。
还有Time.ToShortDateString();。
只需使用您认为需要的功能即可。
在SQL中,你可以做“GetDate()”。
我想我有所帮助,如果我这样做很高兴:)
答案 3 :(得分:0)
您可以尝试这样的事情:
DECLARE @Date DATETIME
SELECT @Date = '20110801'
SELECT DATEADD(dd, number, @Date) Date
FROM master..spt_values
WHERE YEAR(DATEADD(dd, number, @Date)) = YEAR(@Date) AND MONTH(DATEADD(dd, number, @Date)) = MONTH(@Date) AND DATEPART(dw, DATEADD(dd, number, @Date)) = 1
AND [Type] = 'p'