周一至周日的月历显示日期[关闭]

Posted

技术标签:

【中文标题】周一至周日的月历显示日期[关闭]【英文标题】:Month Calendar display dates for Monday - Sunday [closed] 【发布时间】:2013-01-22 00:33:41 【问题描述】:

我正在创建一个小程序,它很快就会发展成一个时间表,我正在练习使用 C# MonthCalendar。到目前为止,我已经设法将所选日期显示在一个文本标签上,但是我正在寻找一些稍微不同的东西,我正在努力解决这个问题。

我在一个表单上放置了七个标签。当我单击一个日期时,我希望所有七个标签都填充与所选日期所在的特定周相对应的日期。谁能建议我需要做些什么来实现这一目标。

我想解决的问题: 假设我从日历中选择一个日期。例如 22/01/1013 等标签上我想显示从 2012 年 1 月 21 日至 27 日开始的那一周的所有日期

进一步澄清这一点:

这是我想出的界面:

以及我目前拥有的代码:

 public Form1()
        
            InitializeComponent();
        

        private void Form1_Load(object sender, EventArgs e)
        
            timer1.Enabled = true;
        
        private void button1_Click(object sender, EventArgs e)
        
    

    private void timer1_Tick(object sender, EventArgs e)
    
        DateTime dt = DateTime.Now;
        label8.Text = dt.ToString();
    

    private void monthCalendar1_DateSelected(object sender, DateRangeEventArgs e)
    
        label1.Text = monthCalendar1.SelectionStart.ToString();
    

【问题讨论】:

那么,你坚持的是哪一部分? 我卡在需要显示整周日期的部分 这还不够具体。您是否难以确定要显示哪些日期?如何将工作日与标签相关联? 您所坚持的不是考虑用户输入或更改第二个日期的方法。第三次等等等等。你不能不先思考就写代码。 您想显示所选日期的那一周的 7 天 :) 【参考方案1】:

来自zespri 的回答,我从answer 得到了这个想法。

class Program

    static void Main(string[] args)
    
        DateTime t = DateTime.Now; //Your selected date from Calendar
        t -= new TimeSpan((int)t.DayOfWeek, 0, 0, 0);
        Console.WriteLine("\tstart: " + t.Date.ToShortDateString());
        Console.WriteLine("\tend: " + t.Date.AddDays(7).ToShortDateString());
        Console.WriteLine("\t" + new string('-', 25));

        for (int i = 0; i < 7; i++)
        
            var d = t.AddDays(i);
            if (d.DayOfWeek >= DayOfWeek.Monday && d.DayOfWeek <= DayOfWeek.Friday) //Range: Monday to Friday
                Console.WriteLine(d.DayOfWeek + " : " + d);
        
        Console.ReadLine();
    

【讨论】:

谢谢,但我正在使用 winforms 如何阻止它显示我只想要日期的时间 我希望从星期一开始 @Tacit,我更新了我的答案,你所要做的就是在 winforms 中迁移它:)【参考方案2】:

首先,找出一周的第一天。你可以像this 那样做。然后从该日期开始将目标文本分配给每个标签。

您可以在 7 行代码中完成后者,每个标签一个,或者您可以将标签放在一个数组中,在您的表单初始化代码中并遍历该数组。请注意,将标签放入数组仍需要 7 行。最后,您可以使用 Form.Controls 或 Form.FindControl 根据名称循环查找所有 7 个标签。

【讨论】:

以上是关于周一至周日的月历显示日期[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

javascript获取当天日期,计算出该天所属周,列出本周从周一至周日的所有日期,求大神帮助!

mysql中如何查询一周(周一至周日)和一个月(自然月)销售数据(字段-sale)的总和,时间字段是date

使用当前日期生成一周的所有日期,还显示周一的周开始日期和周日的周末

java获取某个时间的上周一和周日

vba 判断 某日是不是为本周(周一到周日)

Cron 作业每 x 周和特定日期运行一次 [关闭]