回答
HMM
public bool isBetween(DateTime input, DateTime date1, DateTime date2)
{
if (input > date1 && input < date2)
return true;
else
return false;
}
?
输入=您的日期 日期1 &日期2 =开始,每周
。我们需要找到第一个星期都是当前的一周,然后需要检查相应的给定日期吗? – user1941948
是的,但这是非常简单的任务。你可以得到一周的当前日期,从这里你可以计算开始日期和结束日期 – szpic
如何结束:
bool inRange = (date >= lowerDate && date <= upperDate);
我认为OP想要给出的日期有哪些星期(以及本周开始和结束的日期是什么)。当然,问题根本不明确.. –
@SonerGönül - 可能。这是不是100%清楚要问什么:-( – Sean
使用此办理登机手续(最后一个参数,如果你想从FROM日期始终为1周是可选,你不需要使用最后一个参数):
public static bool DateInside(DateTime checkDate,
DateTime fromDate, DateTime? lastDate = null)
{
DateTime toDate = lastDate != null ? lastDate.Value : fromDate.AddDays(6d);
return checkDate >= fromDate && checkDate <= toDate;
}
要调用的使用:
bool isDateInside = DateInside(new DateTime(2014, 02, 06),
new DateTime(2014, 02, 02)); // return true
和搜索第一:)答案也在这里:How to check whether C# DateTime is within a range
如果你想检查,如果日期是在同一个星期内,那么你可以使用这个:
public static bool DateInsideOneWeek(DateTime checkDate, DateTime referenceDate)
{
// get first day of week from your actual culture info,
DayOfWeek firstWeekDay = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek;
// or you can set exactly what you want: firstWeekDay = DayOfWeek.Monday;
// calculate first day of week from your reference date
DateTime startDateOfWeek = referenceDate;
while(startDateOfWeek.DayOfWeek != firstWeekDay)
{ startDateOfWeek = startDateOfWeek.AddDays(-1d); }
// fist day of week is find, then find last day of reference week
DateTime endDateOfWeek = startDateOfWeek.AddDays(6d);
// and check if checkDate is inside this period
return checkDate >= startDateOfWeek && checkDate <= endDateOfWeek;
}
实际周我的文化信息从2014年2月3日星期一开始(对我来说是2月3日到2月9日的一周)。如果我请与基准日(第二个参数)的任何日期今天(2014-FEB-06)我得到这样的结果:
For 2014-Feb-02 (Sunday before this week): false
For 2014-Feb-03 (Monday inside this week): true
For 2014-Feb-06 (Today inside this week): true
For 2014-Feb-09 (Sunday inside this week): true
For 2014-Feb-10 (Monday next week): false
您可以调用此方法来检查,如果一个日期是同一周referentional内像这样:
DateInsideOneWeek(new DateTime(2014, 02, 02), new DateTime(2014, 02, 06));
您可以找到这段代码本周开始和结束日期:
DateTime startDateOfWeek = DateTime.Now.Date; // start with actual date
while(startDateOfWeek.DayOfWeek != DayOfWeek.Monday) // set first day of week in your country
{ startDateOfWeek = startDateOfWeek.AddDays(-1d); } // after this while loop you get first day of actual week
DateTime endDateOfWeek = startDateOfWeek.AddDays(6d); // you just find last week day
这是你想要的?
我们如何找到当前周日期?然后在周日期检查相应的日期? – user1941948
我扩大了我的答案,我想你想要的。请检查这是你想要的,如果没有,修改你的问题并解释它。 – Atiris
这里的另一种解决方案:)
public static class DateExtensions
{
private static void Swap<T>(ref T one, ref T two)
{
var temp = one;
one = two;
two = temp;
}
public static bool IsFromSameWeek(this DateTime first, DateTime second, DayOfWeek firstDayOfWeek = DayOfWeek.Monday)
{
// sort dates
if (first > second)
{
Swap(ref first, ref second);
}
var daysDiff = (second - first).TotalDays;
if (daysDiff >= 7)
{
return false;
}
const int TotalDaysInWeek = 7;
var adjustedDayOfWeekFirst = (int)first.DayOfWeek + (first.DayOfWeek < firstDayOfWeek ? TotalDaysInWeek : 0);
var adjustedDayOfWeekSecond = (int)second.DayOfWeek + (second.DayOfWeek < firstDayOfWeek ? TotalDaysInWeek : 0);
return adjustedDayOfWeekSecond >= adjustedDayOfWeekFirst;
}
}
UPD:它似乎有比@Atiris解决方案至少两次更好的性能:)
- 1. 检查当前日期是否在开始日期和结束日期之间
- 2. 确定开始日期是否在结束日期之前
- 3. Perl:检查当前日期是否在两个给定日期之间
- 4. 检查当前日期是否在两个给定日期之间
- 5. 如何确定一个日期是否在另一个日期之前
- 6. 确定两个日期之间是否落在两个日期之间
- 7. 如何检查当前日期/时间是否超过设定日期/时间?
- 8. 如何确定日期是否在PHP中的两个日期之间?
- 9. 检查日期时间是否在当前日期
- 10. 如何计算当前日期前四个星期日的日期
- 11. jquery日期 - 确定一个星期日?
- 12. 查找上个星期日的日期从当前日期
- 13. PHP获取当前日期并测试它是星期日还是星期六
- 14. 如何在JavaScript当前日期之后禁用日期日历
- 15. 检查当前日期是否在假期日期范围内
- 16. 如何在jsdatepicker当前日期之前禁用日期
- 17. 如何明确星期日和星期六的日期数?
- 18. 如何检查日期是否在两个日期之间?
- 19. 如何检查日期是否在两个日期之间mysql?
- 20. 给定日期和当前日期之间的区别
- 21. 如何确定当前日期是否在不包括一年的两个日期的范围之内/之外?
- 22. jquery如何检查日期是否小于当前日期
- 23. 如何检查当前日期是否大于结束日期?
- 24. 如何检查移动日期是否为当前日期
- 25. 格式当前日期显示星期
- 26. 如何检查两个日期之间的日期是星期几?
- 27. 检查当前日期是否大于上一个星期一
- 28. 在选定日期和今天日期之前禁用日期
- 29. 如何在DatePickerDialog上的当前日期和前7天之间启用日期?
- 30. 如何计算两个日期之间有多少星期日?
您如何看待本周开始?在星期天?在星期一? –
这并不是100%清楚你所问的。你能提供更详细的描述吗? – Sean
可能的重复:http://stackoverflow.com/questions/21599895/find-the-current-week-from-datetime-now-and-how-to-find-given-date-between-curre(同一作者)仅在上述例子中, – Atiris