首页后端开发ASP.NET万年历——ASP.NETCORE写法

万年历——ASP.NETCORE写法

时间2023-07-06 06:39:02发布访客分类ASP.NET浏览1259
导读:题目要求: 创建.NET Core控制台应用程序实现万年历,通过输入的年份和月份在控制台中打印出指定年份和月份的日历。 实现代码://做一个万年历 Console.WriteLine("请输入年份:" ; string year = Co...

题目要求:

创建.NET Core控制台应用程序实现万年历,通过输入的年份和月份在控制台中打印出指定年份和月份的日历。

实现代码:

//做一个万年历
Console.WriteLine("请输入年份:");
    
string year = Console.ReadLine();
    
Console.WriteLine("请输入月份:");
    
string month = Console.ReadLine();

//获取星期几,这个月多少天
DateTime dt = DateTime.Parse(string.Format("{
0}
-{
1}
    -1", year, month));
    
int week = (int)dt.DayOfWeek;
    
int monthsDay = DateTime.DaysInMonth(int.Parse(year), int.Parse(month));
    
Console.WriteLine("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六\t");
    
for (int i = 0;
     i  week;
 i++)
{
    
    Console.Write("\t");

}
    
for (int i = 0;
     i  monthsDay;
 i++)
{
    
    Console.Write((i + 1) + "\t");

    if ((i + week + 1) % 7 == 0)
    {
    
        Console.WriteLine();

    }

}
    

代码解析:

1、需要在控制台录入年份以及月份的两个信息。

string year = Console.ReadLine(); string month = Console.ReadLine();

2、需要根据年月计算当前月的一号是星期几。

获取具体的DateTime格式时间戳: DateTime dt = DateTime.Parse(string.Format("{ 0} -{ 1} -1", year, month)); 根据具体的DateTime来获取对应1号的星期。 int week = (int)dt.DayOfWeek; 由于是枚举类型,故而可以直接使用强转来处理类型的变化。我们可得到int类型的星期。

3、根据年月来计算当前月的最大天数是多少。

int monthsDay = DateTime.DaysInMonth(int.Parse(year), int.Parse(month)); 使用这个方法免去了计算闰年的过程。相对效率会高很多。

4、遍历的制表符\t处理。

for (int i = 0; i week; i++) {     Console.Write("\t"); } 这里我们使用的week是1号的具体星期,我们的星期排布方式是: "星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六\t"

5、每星期换一次行。

for (int i = 0; i monthsDay; i++) {     Console.Write((i + 1) + "\t");     if ((i + week + 1) % 7 == 0)     {         Console.WriteLine();     } } 可以看到在遍历的过程中对(i+week+1)进行求余7的操作。如果结果是0直接换行即可。

效果示例:

输入年份与月份,得出当前月的万年月。

实际日历:

这个是从实际2023年2月的日历,与咱们遍历的是一致的,计算好对应的星期起始很重要。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

aspconsoledatetimeint遍历

若转载请注明出处: 万年历——ASP.NETCORE写法
本文地址: https://pptw.com/jishu/291411.html
Python小姿势 - #### Python技术博客:Python多线程编程 ASP.NET Core端点路由中三种让人困惑的路由函数

游客 回复需填写必要信息