关于日历和日历事件的问题

Questions about calendar and calendar events

现在我正在尝试制作一个日历类网站,现在我有两件事需要完成才能继续,坦率地说,我不确定如何去做,如果甚至有办法做到这一点。

首先,有没有办法将工作日(星期一、星期二..)与不同的日期对齐,还是每次都需要硬编码?

其次,由于我使用 for 循环创建日期,有没有办法让每个日期的“编辑”按钮向表单发送一个 ID,让它知道他们将提醒放在哪个日期?

创建日子的代码:

<%      
    var days = DateTime.DaysInMonth(2015, 11);

    for (int i = 1; i < days; i++)
    {
        Response.Write("<div class='week'>");
        Response.Write("<ul>");
        Response.Write("<li>");
        Response.Write(i);
        Response.Write("<a href='WebForm1.aspx?setReminder=1'> <img src='editIcon.png' alt='Set reminder'> </a>");

        if (Request["reminderForm"] == "hiddenValue")
        {
            Response.Write(Request["reminderName"]);
        }

        Response.Write("</li>");
        Response.Write("</ul>");
        Response.Write("</div>");
    }

    var setReminder = Request["setReminder"];        
    if(setReminder != null) { 
%>

..以及您设置提醒本身的表格:

<h3>Set a reminder/event</h3>

<form method="POST" action="WebForm1.aspx">

    <input type="hidden" name="reminderForm" value="hiddenValue" />
    Event name: <input type="text" name="reminderName" /> <br />
    Event date: <input type="text" name="reminderDate" /> <br />
    <button type="submit" name="submit">Set</button> <br />

</form> 
        <% } %>

回答你的第一个问题。如果您将所选月份的每一天设为 DateTime,则可以更改 DateTimeFormat 并指定您希望它的外观。

First things first, is there a way to line up the week days (monday, tuesday..) with the different dates, or does it need to be hardcoded each time?

示例可在此处找到:

https://msdn.microsoft.com/en-us/library/8kb3ddd4%28v=vs.110%29.aspx

如果将 DateTime 对象与 .ToShortDateTime() 函数对齐,则可以在括号中为格式添加一个字符串。

"dddd" = 2009-06-15T13:45:30 -> Monday (en-US)

这将为您提供当天的名称。

我不确定你的第二个问题,但我希望到目前为止这对你有所帮助。

这是一个关于如何获取工作日的简单示例:

public void Test()
    {
        int month = 11;
        int year = 2015;
        int days = DateTime.DaysInMonth(year, month); //This will give us days = 30

        for (int i = 1; i < days; i++)
        {
            string dayteTime = new DateTime(year, month, i).ToString("D");
            //This will create the following Output:
            //Sunday, 1. November 2015
            //Monday, 2. November 2015
            //.... this can be added to a list or how ever you need the days.
        }
    }