用C#写判断一个年份是否为闰年的程序(详细解释)

目录

一、什么是闰年?

二、思维逻辑

三、代码详情

四、代码详细注释及相关知识拓展:


一、什么是闰年?

凡公历中有闰年(2月29日)的年份,阴阳历中有闰月的年份。

1582年以来公历的置闰规则:

普通闰年:公历年份是4的倍数,且不是100的倍数的,为闰年(如2004年、2020年等就是闰年)。

世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年(如1900年不是闰年,2000年是闰年)。

二、程序思维逻辑

用户输入一个年份;将年份字符串转化为整型;引用一个布尔类型,来判断年份是否为闰年,能被4整除但不能被100整除是闰年,或者能被400整除也是闰年;引用一个If语句做判断,如果布尔函数值为真,则该年份是闰年,否则不是闰年。

三、代码详情

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace LeapYear
{
    class Program
    {
        static void Main(string[] args)
        {
            int year;
            string s;
            Console.Write("请输入年份:");
            s = Console.ReadLine();
            year = int.Parse(s);
            bool result = (year % 4 == 0&&year % 100 != 0) || year % 400 == 0;
            if (result == true)
                Console.WriteLine("{0}年是闰年",year);
            else
                Console.WriteLine("{0}年不是闰年", year);
            Console.ReadLine();

        }
    }
}

四、代码详细注释及相关知识拓展:

 - `using System;` 引入 `System` 命名空间,包含了 `Console` 类,用于输入和输出。

- `class Program` 声明了一个名为 `Program` 类,这是一个控制台程序的入口点。
- `static void Main()` 声明了一个名为 `Main` 的公共静态方法,这是程序的入口点。

-`int year;string s;`定义一个整型变量year,字符串s。

- `Console.Write("请输入年份:");` 输出提示,要求用户输入一个年份。

相关知识拓展:

console.writeline()和write的区别:

1. console.writeline()会在输出后自动换行,而write输出时不会自动换行。

2. console.writeline()只能输出一个值,并且该值会被输出到新的一行,而write可以输出多个值,多个值之间不会自动换行。

3. console.writeline()的输出对象只能是字符串类型,而write可以输出多种类型的对象,包括字符串、整数、浮点数等。

4. console.writeline()的返回值为void,而write的返回值为输出的字符数。

-`s = Console.ReadLine();`读取用户输入的年份,并赋值给字符串s;

-`year = int.Parse(s);`将字符串s转化为整型,并赋值给year。

相关知识拓展:

console.readline()和read的区别:

两者的区别在于读取输入的方式不同。

console.readline()从控制台读取一行用户输入,而read()从文件中读取指定字节数的数据。console.readline()通常用于与用户交互获取输入,而read()通常用于从文件中读取数据。

读取用户输入的数据都是字符串类型。无论用户输入的是数字、字母还是符号,都会被当作字符串来处理。如果需要对输入的数据进行数值计算,需要将其转化为对应的数据类型,如int或float。

C#如何将输入的数据转化为对应的数据类型?

C#有许多方法可以将输入的数据转换为对应的数据类型,以下是常用的方法:

1. 使用类型转换函数:例如Convert.ToInt32()、Convert.ToDouble()等。这些函数可以将输入的数据转换为对应的整数、双精度浮点数等数据类型。

2. 使用Parse方法:例如int.Parse()、double.Parse()等。这些方法可以将字符串类型的输入转换为对应的整数、双精度浮点数等数据类型。

3. 使用TryParse方法:例如int.TryParse()、double.TryParse()等。这些方法可以试图将输入转换为对应的数据类型,如果转换失败则返回false,而不会抛出异常。

4. 使用强制类型转换:例如(int)输入值可以将输入的值强制转换为整数类型。强制类型转换可能会导致数据丢失或溢出,需要小心使用。

需要注意的是,在输入数据时需要保证其符合对应数据类型的格式,否则无法成功转换。同时在转换时需注意数据类型的范围和精度,避免出现溢出或精度丢失的问题。

- `bool result = (year % 4 == 0&&year % 100 != 0) || year % 400 == 0;`引用布尔类型,判断年份是否为闰年,闰年的判断标准是:能被4整除但不能被100整除,或者能被400整除。

相关知识拓展:

C#中的布尔类型指的是bool类型,表示逻辑上的真或假。它只有两个取值:true和false。可以用于判断和控制程序流程。bool类型通常用于条件判断、循环控制和逻辑表达式中。例如,

```
bool isEquals = (5 == 5); // isEquals是true
bool isGreater = (10 > 15); // isGreater是false
bool isTrue = true; // isTrue是true
bool isFalse = false; // isFalse是false
```

注意,C#不支持将非布尔类型隐式转换为布尔类型。也就是说,只有布尔表达式或bool类型的变量可以作为条件表达式使用。

```
int num = 10;
if(num) // 编译错误
{
    // ...
}

bool isOkay = true;
if(isOkay) // 正确
{
    // ...
}
```

- `Console.WriteLine("{0}年是闰年。", year);` 输出判断结果,如果是闰年,输出 "{年份}年是闰年。"。
- `Console.WriteLine("{0}年不是闰年。", year);` 输出判断结果,如果不是闰年,输出 "{年份}年不是闰年。"。

你可能感兴趣的:(C#入门,c#)