C#,《小白学程序》第十二课:日历的编制,时间DateTime的计算方法与代码

1 文本格式

/// <summary>

/// 《小白学程序》第十二课:日历的编制,时间DateTime的计算方法与代码

/// 本课学习时间类型的数据 DateTime 的简单方法,并编制一个月的日历。

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

private void button12_Click(object sender, EventArgs e)

{

// 设定为某个月的1号

DateTime day = DateTime.Parse("2025-08-01 10:10:00");

// 记录 月份

int month = day.Month;

// 1号 是星期几? 等于日历1号前面留出的空格数;

DayOfWeek weekday = day.DayOfWeek;

int wd = (int)weekday;

StringBuilder sb = new StringBuilder();

sb.AppendLine("<style>td { padding:5px;text-align:center;} </style>");

sb.AppendLine("<table width=420 border=1 style='border-collapse:collapse;'>");

// 日历第一行,表头,现实星期日、一、二、。。。。。。

sb.AppendLine("<tr style='background-color:#EEEEFF;'>");

sb.AppendLine("<td>日</td>");

sb.AppendLine("<td>一</td>");

sb.AppendLine("<td>二</td>");

sb.AppendLine("<td>三</td>");

sb.AppendLine("<td>四</td>");

sb.AppendLine("<td>五</td>");

sb.AppendLine("<td>六</td>");

sb.AppendLine("</tr>");

sb.AppendLine("<tr>");

// 如果 1号不是周日,前面留出一些空格

if (wd > 0)

{

int nn = wd;

for (int i = 0; i < nn; i++)

{

sb.AppendLine("<td> </td>");

}

}

// 循环,条件是 月份 不变!

while (day.Month == month)

{

// 打印日期

sb.AppendLine("<td>" + day.Day + "</td>");

// 如果是周日,换行!!!

if ((int)day.DayOfWeek == 6)

{

sb.AppendLine("</tr>");

sb.AppendLine("<tr>");

}

// 时间往后面加一天

day = day.AddDays(1);

}

// 最后一天,如果不是周六,需要增加几个空格!

int de = (int)day.DayOfWeek;

for (int i = de; i < 6; i++)

{

sb.AppendLine("<td> </td>");

}

sb.AppendLine("</tr>");

sb.AppendLine("</table>");

webBrowser1.DocumentText = sb.ToString();

}

2 代码格式

cs 复制代码
/// <summary>
/// 《小白学程序》第十二课:日历的编制,时间DateTime的计算方法与代码
/// 本课学习时间类型的数据 DateTime 的简单方法,并编制一个月的日历。
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button12_Click(object sender, EventArgs e)
{
    // 设定为某个月的1号
    DateTime day = DateTime.Parse("2025-08-01 10:10:00");
    // 记录 月份
    int month = day.Month;
    // 1号 是星期几? 等于日历1号前面留出的空格数;
    DayOfWeek weekday = day.DayOfWeek;
    int wd = (int)weekday;

    StringBuilder sb = new StringBuilder();
    sb.AppendLine("<style>td { padding:5px;text-align:center;} </style>");
    sb.AppendLine("<table width=420 border=1 style='border-collapse:collapse;'>");

    // 日历第一行,表头,现实星期日、一、二、。。。。。。
    sb.AppendLine("<tr style='background-color:#EEEEFF;'>");
    sb.AppendLine("<td>日</td>");
    sb.AppendLine("<td>一</td>");
    sb.AppendLine("<td>二</td>");
    sb.AppendLine("<td>三</td>");
    sb.AppendLine("<td>四</td>");
    sb.AppendLine("<td>五</td>");
    sb.AppendLine("<td>六</td>");
    sb.AppendLine("</tr>");

    sb.AppendLine("<tr>");
    // 如果 1号不是周日,前面留出一些空格
    if (wd > 0)
    {
        int nn = wd;
        for (int i = 0; i < nn; i++)
        {
            sb.AppendLine("<td> </td>");
        }
    }

    // 循环,条件是 月份 不变!
    while (day.Month == month)
    {
        // 打印日期
        sb.AppendLine("<td>" + day.Day + "</td>");
        // 如果是周日,换行!!!
        if ((int)day.DayOfWeek == 6)
        {
            sb.AppendLine("</tr>");
            sb.AppendLine("<tr>");
        }
        // 时间往后面加一天
        day = day.AddDays(1);
    }

    // 最后一天,如果不是周六,需要增加几个空格!
    int de = (int)day.DayOfWeek;
    for (int i = de; i < 6; i++)
    {
        sb.AppendLine("<td> </td>");
    }

    sb.AppendLine("</tr>");
    sb.AppendLine("</table>");

    webBrowser1.DocumentText = sb.ToString();
}
相关推荐
怕浪猫3 小时前
GEO 优化到底是什么?AI时代内容创作者必须懂的新技能
算法·面试·github
朝朝辞暮i4 小时前
C++ 第 23 课:class —— 开始真正进入面向对象
开发语言·c++·算法
Evand J5 小时前
【MATLAB例程】三维RRT+APF避障路径规划与到达角(AOA)定位算法|三维路径优化与定位仿真例程
算法·matlab·路径规划·代码·定位·rrt·aoa
小师兄吃牛肉5 小时前
C语言篇:宏
c语言·开发语言
郑同学的笔记6 小时前
【c++随笔28】strcmp 和 memcmp对比
开发语言·c++
未来之窗软件服务6 小时前
C# 截图源码支持自动保存-东方仙盟
c#·仙盟创梦ide·东方仙盟·电脑工具
言乐66 小时前
Python根据无法识别搜索词找出可能输入内容模型
开发语言·python·django·virtualenv·pygame
weixin_307779136 小时前
有限产能智能排产与动态重排智能体:从需求解构到技术实现
开发语言·人工智能·算法·架构
kakakahahahaha6 小时前
Windows C盘临时文件清理:%temp%、Windows Temp、Prefetch、Windows.old与hiberfil.sys处理指南
c语言·开发语言·windows
朝朝辞暮i6 小时前
C++ 第 27 课:智能指针 shared_ptr
开发语言·c++·算法