三种语言实现_全年的所有日期

闰年的介绍
闰年: 年份能整除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
  • 关于获取某一年所有日期的方法每种语言它都有自己的库,可以用库更好的实现
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值