我如何确定某个日期的星期几?

问题描述 投票:12回答:3

我正在尝试使用wpf制作日历。通过使用itemsPanel等,我得到了一个包含7列(周日至周六)和6行(每月周数)的网格。如果我可以通过获取每月的星期几和星期数来找到每个月第一天的开始位置,我如何找到星期数(每月0-5)?我也不能以某种方式从那里填写日历吗?我迷路了,我不知道还能尝试什么。

public partial class SchedulePage : Page
{        
    MainWindow _parentForm;
    public int dayofweek;

    public SchedulePage(MainWindow parentForm)
    {
        InitializeComponent();
        _parentForm = parentForm;
        // DateTime date = new DateTime(year, month, day);

        _parentForm.bindings = new BindingCamper();          
        _parentForm.bindings.schedule.Add(new Schedule { WeekNo = (int) getWeekNumber(), WeekDay = dayofweek });
        DataContext = _parentForm.bindings;
        // lblTest.Content = dates(2011, 10, 27);
    }

    public double getWeekNumber()
    {
        dayofweek = getWeekDay(2011, 10, 31);
        double h = dayofweek / 7;
        double g = Math.Floor(h);
        return g;
    }

    public int getWeekDay(int year, int month, int day)
    {
        //year = 2011;
        //month = 10;
        //day = 27;
        int[] t = { 0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4 };
        // year -= month < 3;
        return (year + year / 4 - year / 100 + year / 400 + t[month - 1] + day) % 7;
    }
c# wpf date calendar week-number
3个回答
17
投票

[您必须使用Calendar.GetDayOfWeekCalendar.GetWeekOfYear优先于自己编写。


11
投票

您可以使用全球化中的Calendar.GetWeekOfYear执行此操作。


0
投票

使用@Polynomial答案,我遇到此错误:

© www.soinside.com 2019 - 2024. All rights reserved.