闰年的介绍
闰年: 年份能整除4 但整除100 当中只有整除四百的属于闰年
也就是说: 400年中只设97个闰年 100, 200, 300 均不属于闰年
python的实现代码
def get_all_day(year):
is_r = False
if year % 4 == 0:
is_r = True
if year % 100 == 0 and year % 400 != 0:
is_r = False
for i in range(1, 13):
days = 31
if is_r and i == 2:
days = 29
elif not is_r:
days = 28
if i in [4, 6, 9, 11]:
days = 30
for j in range(1, days+1):
if is_r:
current_day = f"{year}是闰年 当天日期:年:{year} 月{i} 日{j}"
else:
current_day = f"{year}不是闰年 当天日期:年:{year} 月{i} 日{j}"
yield current_day
for x in get_all_day(2200):
print(x)
java的实现
- 创建一个Demo.java文件
import java.util.Arrays;
public class Demo {
public static void get_all_day(int year){
int [] arr = {4, 6, 9, 11};
boolean is_r = false;
// 判断是否是闰年
if (year % 4 == 0){
is_r = true;
if (year % 100 == 0 && year % 400 != 0){
is_r = false;
}
}
// 循环出当年的每一天
for(int i=1; i <= 12; i++) {
int days = 31;
if (is_r && i==2){ // 是闰年
days = 29;
}else if(i==2){
days = 28;
}
if(Arrays.asList(arr).contains(i)){
days = 30;
}
for (int j=0; j <= days; j++){
if (is_r){
System.out.printf("是闰年 当天日期:年:%s 月%s 日%s \n", year, i, j);
}else {
System.out.printf("不是闰年 当天日期:年:%s 月%s 日%s \n", year, i, j);
}
}
}
}
public static void main(String[] args) {
get_all_day(2020);
}
}
golang的实现
- 创建一个 main.go文件
package main
import (
"fmt"
)
func get_all_day(year int){
// year := 2020
var is_r, days = false, 31
if year % 4==0{
fmt.Print(is_r)
if year % 100 == 0 && year % 400 != 0{
is_r = false
}
}
for i:=1; i< 13; i++{
if year % 4== 0 && i == 2{
days = 29
}else{
days = 28
}
switch i{
case 4, 6, 9, 11:
days = 30
}
for j:=1; j < days; j++{
if is_r{
fmt.Printf("是闰年 当天日期 年:%v 月: %v 日:%v \n", year, i, j)
}else{
fmt.Printf("不是闰年 当天日期:年:%v 月: %v 日:%v \n", year, i, j)
}
}
}
}
func main() {
get_all_day(2020)
}
总结
- golang 是吸收了java, python 等语言的语法, 所有会有点像python有点像java
- 关于获取某一年所有日期的方法每种语言它都有自己的库,可以用库更好的实现