周一至周日的月历显示日期[关闭]
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