C#用DateTime.DaysInMonth(Int32, Int32) 获取指定月的天数

news2024/9/26 1:21:35

目录

一、DateTime.DaysInMonth(Int32, Int32) 方法

二、实例

1.实例1 

2.实例2

3.方法3


一、DateTime.DaysInMonth(Int32, Int32) 方法

        返回指定年和月中的天数。

public static int DaysInMonth (int year, int month);

参数
year    Int32
年。

month    Int32
月(介于 1 到 12 之间的一个数字)。

返回
Int32
指定 month 中 year 中的天数。

例如,如果 month 等于 2(表示二月),则返回值为 28 或 29,具体取决于 year 是否为闰年。

例外
ArgumentOutOfRangeException
month 小于 1 或大于 12。
或 -
year 小于 1 或大于 9999。

二、实例

        DaysInMonth方法接收两个整型数值的参数,两个整型数值分别代表要计算天数指定的年份和月份,方法返回一个整型数值,表示指定年和月中的天数。

1.实例1 

//用DateTime.DaysInMonth获取当前月的天数
namespace _059
{
    public partial class Form1 : Form
    {
        private Button? button1;
        public Form1()
        {
            InitializeComponent();
            Load += Form1_Load;
        }
        private void Form1_Load(object? sender, EventArgs e)
        {
            // 
            // button1
            // 
            button1 = new Button
            {
                Location = new Point(98, 31),
                Name = "button1",
                Size = new Size(100, 23),
                TabIndex = 0,
                Text = "当前月份的天数",
                UseVisualStyleBackColor = true
            };
            button1.Click += Button1_Click;
            // 
            // Form1
            // 
            AutoScaleDimensions = new SizeF(7F, 17F);
            AutoScaleMode = AutoScaleMode.Font;
            ClientSize = new Size(284, 81);
            Controls.Add(button1);
            Name = "Form1";
            StartPosition = FormStartPosition.CenterScreen;
            Text = "计算当前月份的天数";
        }

        private void Button1_Click(object? sender, EventArgs e)
        {
            int Day_Count = DateTime.DaysInMonth(//获取本月的天数
                DateTime.Now.Year, DateTime.Now.Month);
            MessageBox.Show("本月有" +//显示本月的天数
                Day_Count.ToString() + "天", "提示!");
        }
    }
}

2.实例2

// DateTime.DaysInMonth()
namespace _059_1
{
    class Example
    {
        static void Main()
        {
            const int July = 7;
            const int Feb = 2;

            int daysInJuly = DateTime.DaysInMonth(2021, July);
            Console.WriteLine(daysInJuly);

            // daysInFeb gets 28 because the year 2022 was not a leap year.
            int daysInFeb = DateTime.DaysInMonth(2022, Feb);
            Console.WriteLine(daysInFeb);

            // daysInFebLeap gets 29 because the year 2024 was a leap year.
            int daysInFebLeap = DateTime.DaysInMonth(2024, Feb);
            Console.WriteLine(daysInFebLeap);
        }
    }
}
// 运行结果:
/*
31
28
29

 */

3.方法3

// DateTime.DaysInMonth(Int32, Int32) 方法
using System.Globalization;

namespace _059_2
{
    public class Example
    {
        public static void Main()
        {
            int[] years = [2023, 2024];
            DateTimeFormatInfo dtfi = DateTimeFormatInfo.CurrentInfo;
            Console.WriteLine("Days in the Month for the {0} culture " +"using the {1} calendar\n",
                              CultureInfo.CurrentCulture.Name,
                              dtfi.Calendar.GetType().Name.Replace("Calendar", ""));
            Console.WriteLine("{0,-10}{1,-15}{2,4}\n", "Year", "Month", "Days");

            foreach (var year in years)
            {
                for (int ctr = 0; ctr <= dtfi.MonthNames.Length - 1; ctr++)
                {
                    if (string.IsNullOrEmpty(dtfi.MonthNames[ctr]))
                        continue;

                    Console.WriteLine("{0,-10}{1,-15}{2,-4}", year,
                                      dtfi.MonthNames[ctr],
                                      DateTime.DaysInMonth(year, ctr + 1));
                }
                Console.WriteLine();
            }
        }
    }
}
// 运行结果:
/*
Days in the Month for the zh-CN culture using the Gregorian calendar

Year      Month          Days

2023      一月             31
2023      二月             28
2023      三月             31
2023      四月             30
2023      五月             31
2023      六月             30
2023      七月             31
2023      八月             31
2023      九月             30
2023      十月             31
2023      十一月            30
2023      十二月            31

2024      一月             31
2024      二月             29
2024      三月             31
2024      四月             30
2024      五月             31
2024      六月             30
2024      七月             31
2024      八月             31
2024      九月             30
2024      十月             31
2024      十一月            30
2024      十二月            31
 */

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1408440.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

「JavaSE」抽象类接口2

&#x1f387;个人主页&#xff1a;Ice_Sugar_7 &#x1f387;所属专栏&#xff1a;快来卷Java啦 &#x1f387;欢迎点赞收藏加关注哦&#xff01; 抽象类&接口2 &#x1f349;接口间的继承&#x1f349;接口的应用&#x1f349;总结 &#x1f349;接口间的继承 和类的继承…

Java--异常处理

文章目录 主要内容一.练习11.源代码代码如下&#xff08;示例&#xff09;: 2.结果 二.练习21.源代码代码如下&#xff08;示例&#xff09;: 2.结果 三.练习31.源代码代码如下&#xff08;示例&#xff09;: 2.结果 总结 主要内容 一.练习1 编写程序&#xff0c;定义一个 cir…

FRRouting学习(一) 配置日志文件

以配置isis event事件日志为例 1、在配置之前&#xff0c;/var/log/frr路径下是没有文件的&#xff1a; 2、在vtysh config之下输入&#xff1a;log file /var/log/frr/isisd.log debugging 后面的debugging表示日志级别&#xff0c;可以根据自己修改 3、配置好了之后&#xf…

力扣hot100 两两交换链表中的节点 双指针

Problem: 24. 两两交换链表中的节点 复杂度 时间复杂度: O ( n ) O(n) O(n) 空间复杂度: O ( 1 ) O(1) O(1) Code /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { …

力扣hot100 环形链表 快慢指针 哈希 数学公式

Problem: 142. 环形链表 II 文章目录 思路Code 思路 &#x1f468;‍&#x1f3eb; 参考题解 Code ⏰ 时间复杂度: O ( n ) O(n) O(n) &#x1f30e; 空间复杂度: O ( 1 ) O(1) O(1) /** /*** Definition for singly-linked list.* class ListNode {* int val;* …

微信小程序如何做到高效引流?-数灵通

随着微信小程序制作门槛的降低&#xff0c;大量的小程序如雨后春笋般涌现&#xff0c;其中小程序商城类型尤为众多。然而&#xff0c;由于微信自身的流量有限&#xff0c;对于大多数小程序商城而言&#xff0c;获取足够的流量成为了一大挑战。 针对这一问题&#xff0c;我们可以…

如何在Windows 10/11中设置IPv4?这里有详细步骤

在Windows上&#xff0c;路由器的动态主机配置协议&#xff08;DHCP&#xff09;服务器&#xff08;通常&#xff09;负责将动态传输控制协议/互联网协议&#xff08;TCP/IP&#xff09;配置分配给网络中的每个设备&#xff0c;包括运行Windows 11或Windows 10的计算机。 尽管…

链表OJ----相交链表找交点

https://leetcode.cn/problems/intersection-of-two-linked-lists/description/ 1、长链表先走&#xff0c;然后二者一起走 由于两个链表可能不一样&#xff0c;就不好控制移动。那么我们可以让长的链表先走二者的长度差的长度&#xff0c;使剩下部分和短链表一样长。然后二者一…

操作无法完成,因为文件已在Windows资源管理器中打开,如何解决?以及如何将哔哩哔哩下载好的视频导出到电脑中播放?— 以vivo手机为例

前言 想删除流氓软件的时候&#xff0c;提示操作无法完成&#xff0c;因为文件已在Windows资源管理器中打开&#xff0c;但打开任务管理器&#xff0c;似乎又没有符合的正在执行的程序&#xff0c;更别说打开让人看到头疼的资源监视器了&#xff0c;本文将用一招解决如上问题 …

【RF FILTER 仿真】滤波器 Ansys Electronics not ADS

第一&#xff0c;声明 全网搜索&#xff0c;用这个HFSS继承的介绍非常少&#xff0c;并且没有什么指导意义。所以有必要写一下&#xff0c;就像之前的xpedition,总要挑战一下吧。本文仅仅和大家学习研究&#xff0c;对比ADS体会一下差别。 第二&#xff0c;记录直接开始&…

微信小程序如何解决botton按钮对齐问题

如果botton不在其他控件下层&#xff0c;或者上层控件类型不为flex&#xff0c;可以用float调整botton显示位置&#xff0c;如floatright&#xff0c;则botton显示在右侧。 <button type"primary" style"float: right;">测试</button><vie…

什么是JMeter?我们为什么要用JMeter做性能测试

什么是JMeter&#xff1f;我们为什么要用JMeter做性能测试 什么是JMeter&#xff1f;为什么选择JMeterJMeter的优点JMeter是如何工作的 什么是JMeter&#xff1f; Apache JMeter TM是纯Java开源软件&#xff0c;最初由Apache软件基金会的Stefano Mazzocchi开发&#xff0c;旨在…

运维神器Ansible的常用模块

引言&#xff1a;话不多说&#xff0c;今天分享一下Ansible的常用模块&#xff0c;建议收藏哦 1、ping模块 ping模块可以进行主机连通性测试 命令格式 ansible 主机或主机组 -m ping 例&#xff0c;成功显示如下&#xff1a; 2、command 模块 command模块可以直接在远程主机…

条件语句及if语句,case语句

文章目录 条件语句一、测试1、概述格式 2、文件测试2.1 格式2.2 常用操作符 3、比较整数数值3.1 格式3.2 常用操作符 4、字符串比较4.1 格式4.2 常用操作符 5、逻辑测试&#xff08;短路运算&#xff09;5.1 格式5.2 常用操作符 6、双中括号6.1 格式6.2 说明 二、if语句1、单分…

DA14531平台secondary_bootloade工程修改笔记

DA14531平台secondary_bootloade工程修改笔记 1.支持在线仿真 初始时加入syscntl_load_debugger_cfg(); 表示可以重复Jlink连接调试仿真 2.支持串口烧录&#xff0c;和支持单线线写 utilities\secondary_bootloader\includes\bootloader.h /************** 2-wire UART supp…

程序媛的mac修炼手册-- 如何用Python节省WPS会员费

上篇分享了如何用微博爬虫&#xff0c;咱举例爬了女明星江疏影的微博数据。今天就用这些数据&#xff0c;给大家安利一下怎么用Python实现WPS中部分Excel付费功能。 MacOS系统自带的工具&#xff0c;绝大多数都非常顶&#xff0c;除Numbers外。当然&#xff0c;page比起word来&…

ubuntu 22.04 安装mysql-8.0.34

ubuntu 22.04 安装mysql-8.0.34 1、基础安装配置 更新软件包&#xff1a; sudo apt update查看可用软件包&#xff1a; sudo apt search mysql-server安装最新版本&#xff1a; sudo apt install -y mysql-server或者&#xff0c;安装指定版本&#xff1a; sudo apt inst…

vue3实现在浏览器之外打开新窗口,新窗口只有原来的一半并且居中显示

首先在router下的index.js添加路由地址 {name: attribute,path: /attribute,component: () > import(../views/attribute.vue)},然后在方法中调用 //点击按钮 function clicek() {openCenteredWindow(/attribute, 1400, 800);} // 计算居中位置function calculateCenterPos…

live555在拉流时应对多路码流传输带宽问题的几种处理思路

处理带宽管理和调整的机制 Live555库本身并没有直接处理带宽管理和调整的机制&#xff0c;因为它主要是一个用于实现RTSP流媒体服务器和客户端的库&#xff0c;而带宽管理通常是在应用层进行处理的。但Live555支持一些基础协议&#xff0c;这些协议可以在应对带宽问题时进行使用…

qt初入门6:QChar和QString相关接口练习

简单了解编码&#xff1a; ​ latin1&#xff08;ISO 8859-1&#xff09;字符集是对ASCII基本字符集的扩展&#xff0c;都是1字节编码。 Unicode编码有多重存储方案&#xff0c;utf-8使用1~4字节编码&#xff0c;最少1字节&#xff1b;utf-16使用2-4字节编码&#xff0c;最少2字…