c# - 如何在 C# 中对日期字段进行周末舍入(不使用 LINQ)?

标签 c# .net datetime

我有一个奇怪的日期舍入问题,希望有人能解决。我的客户使用从周一到周日的工作周。星期日的日期被视为一周的结束日期,用于标识特定一周内输入的所有记录(因此上周输入的任何内容的 WEEKDATE 值为“10/26/2008”,即星期日的日期)。

一个小问题是,用户输入前一周的记录直到本周星期一上午 11 点。

所以我需要一个以 DateTime.Now 开头并根据上述规则返回周末日期(无时间部分)的函数。感谢您的帮助。我有一个可行的解决方案,但我不好意思发布它。

哦,我不会使用 LINQ。

最佳答案

public DateTime WeekNum(DateTime now)
{
    DateTime NewNow = now.AddHours(-11).AddDays(6);

    return (NewNow.AddDays(- (int) NewNow.DayOfWeek).Date);
}

public void Code(params string[] args)
{

    Console.WriteLine(WeekNum(DateTime.Now));   
    Console.WriteLine(WeekNum(new DateTime(2008,10,27, 10, 00, 00)));
    Console.WriteLine(WeekNum(new DateTime(2008,10,27, 12, 00, 00)));
    Console.WriteLine(WeekNum(new DateTime(2008,10,28)));
    Console.WriteLine(WeekNum(new DateTime(2008,10,25)));


}

您可以硬编码 DateTime.Now 而不是传递 DateTime 对象。这样只会让测试变得更容易。

关于c# - 如何在 C# 中对日期字段进行周末舍入(不使用 LINQ)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/240531/

相关文章:

c# - 如何从数据库刷新 ObjectContext 缓存?

matlab - 在 MATLAB 中从 CSV 文件中读取日期和时间

java - 不支持从日期时间到 INTEGER 的转换

c# - 如何更新 SQL 插件以在 SSMS 2016 中工作?

C# 创建包含多个文件的 ZIP 存档

C# 套接字消息解压

.net - Windows 窗体应用程序的现代 UI 应用程序设计

date - 在 xslt 或 TIBCO BW 中将多个 dateTime 字符串解析为 dateTime 格式

c# - 如何从 Windows 8 Metro 应用程序中的 WebView 获取 HTML 元素 onClick?

c# - Datagridview FirstDisplayedScrollingRowIndex 在网格底部不起作用