如何區分閏年與平年

首先要明白

地球繞太陽運行周期為365天5小時48分46秒(合365.24219天),即一回歸年(tropical year)。公歷的平年只有365日,比回歸年短約0.2422 日,每四年累積約一天,把這一天加于2月末(2月29日),使當年的歷年長度為366日,這一年就為閏年。 按照每四年一個閏年計算,平均每年就要多算出0.0078天,經過四百年就會多出大約3天來,因此,每四百年中要減少三個閏年。所以規定公歷年份是整百數的,必須是400的倍數才是閏年,不是400的倍數的就是平年。比如,1700年、1800年和1900年為平年,2000年為閏年。閏年的計算,歸結起來就是通常說的:四年一閏百年不閏,四百年再閏

1、年份不是閏年的年份就是平年,

2、平年一年365天,陽歷2月28天;閏年一年366天,陽歷2月29天。

3、閏年能被4整除,平年不能。

簡單判斷

①一般的,能被4整除的年份是閏年,不能被4整除的年份是平年。

如:1988年2008年是閏年;2005年2006年2007年是平年。

②但是如果是世紀年(也就是整百年),就只有能被400整除才是閏年,否則就是平年。

如:2000年就是閏年,1900年就是平年。

③閏年的2月有29天,平年的2月只有28天

代碼判斷

代碼判斷某年是否是閏年的方法如下,從下面任一角度均可判斷出閏平年:
角度1:能被 4 整除,且不能被 100 整除的年份是閏年(非世紀年)。如2020,2004
角度2:

能被 400 整除的年份一定是閏年(能被400整除肯定能被100整除,故該年為世紀年)。如1600,2000,2400,2800

角度3:

能被 100 整除(世紀年),且不能被?400 整除的年份為平年。如1900
?

角度2,3可以看成一種,只是判斷條件反一下而已!

寫法一:

角度1+角度2

import java.util.Scanner;public class yearTest {public static void main(String[] args) {System.out.println("請輸入年份:");int year = new Scanner(System.in).nextInt();if (year%4==0){  //角度1//year%100==0說明是非世紀年  year%400!=0余數不為0表示不能被400整除//角度2:能被 400 整除的年份一定是閏年(能被400整除肯定能被100整除,該年為世紀年;//二者不可同時成立故用||“或”)。如1600,2000,2400,2800if (year%100!=0 || year%400==0){System.out.println(year%4+","+year%100+","+year%400);System.out.println(year+"是閏年");}else {System.out.println(year%4+","+year%100+","+year%400);System.out.println(year+"是平年");}}else {System.out.println("是平年");}}}

寫法二:

角度1+角度3

import java.util.Scanner;public class year {public static void main(String[] args) {System.out.println("請輸入年份:");int year = new Scanner(System.in).nextInt();if (year%4==0){  //角度1//year%100==0說明是世紀年  year%400!=0余數不為0表示不能被400整除//角度3:能被 100 整除(世紀年),且不能被?400 整除的年份為平年。如1900if (year%100==0 && year%400!=0){System.out.println(year%4+","+year%100+","+year%400);System.out.println(year+"是平年");}else {System.out.println(year%4+","+year%100+","+year%400);System.out.println(year+"是閏年");}}else {System.out.println("是平年");}}}

寫法三最簡:

import java.util.Scanner;public class yearTest2 {public static void main(String[] args) {System.out.println("請輸入年份:");int year = new Scanner(System.in).nextInt();//角度1:year % 4 == 0 && year % 100 != 0//角度2:year % 4 == 0 && year % 400 == 0 等同于 year % 400 == 0if (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)) {System.out.println(year + "是閏年");} else {System.out.println(year + "是平年");}}}

代碼對比:

 if (year%4==0){//year%100==0說明是世紀年  year%400!=0余數不為0表示不能被400整除if (year%100==0 && year%400!=0){
 if (year%4==0){//year%100==0說明是非世紀年  year%400==0余數為0表示能被400整除if (year%100!=0 || year%400==0){
//角度1:year % 4 == 0 && year % 100 != 0//角度2:year % 4 == 0 && year % 400 == 0 等同于 year % 400 == 0
if (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)) {

總結:?

滿足下列二者情況之一的為閏年,反之為平年:

非世紀年 且 能被 4 整除為閏年。

能被 400 整除為閏年。(能被400整除肯定可以被100整除,故為世紀年)

朋友:

看到這里了,點個贊再走吧!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/42832.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/42832.shtml
英文地址,請注明出處:http://en.pswp.cn/news/42832.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Docker安裝基礎使用練習

目錄 1、安裝Docker-CE 1)簡單使用yum方式安裝 ! 2)配置鏡像加速: 2、下載系統鏡像(Ubuntu、 centos) 1)先查看我們所需的鏡像有哪些版本。使用search命令! 2)下載鏡像使用的是pul…

【爬蟲】P1 對目標網站的背景調研(robot.txt,advanced_search,builtwith,whois)

對目標網站的背景調研 檢查 robot.txt估算網站大小識別網站所用技術尋找網站的所有者 檢查 robot.txt 目的: 大多數的網站都會包含 robot.txt 文件。該文件用于指出使用爬蟲爬取網站時有哪些限制。而我們通過讀 robot.txt 文件,亦可以最小化爬蟲被封禁的…

vue中實現文字檢索時候將搜索內容標紅

實現結果 html&#xff1a; <div class"searchBox"><span class"bt">標&#8195&#8195題</span><div class"search"><div class"shuru"><!-- <span class"title">生產經營<…

[leetcode] 707 設計鏈表

707. 設L計鏈表 中等 902 相關企業 你可以選擇使用單鏈表或者雙鏈表&#xff0c;設計并實現自己的鏈表。 單鏈表中的節點應該具備兩個屬性&#xff1a;val 和 next 。val 是當前節點的值&#xff0c;next 是指向下一個節點的指針/引用。 如果是雙向鏈表&#xff0c;則還需…

如何批量修改圖片名為不同名稱

如何批量修改圖片名為不同名稱&#xff1f;當今社會&#xff0c;因為人們都養成了隨手拍照的習慣&#xff0c;所以擁有上千上萬張照片的相冊已經司空見慣不足為奇。然而&#xff0c;我們在保存這些照片時往往都會碰到一個大難題——電腦中的圖片名稱千奇百怪&#xff0c;讓整個…

C++并發多線程--std::async、std::packaged_task和std::promise的使用

目錄 1--std::async的使用 2--std::packaged_task的使用 3--std::promise的使用 1--std::async的使用 std::async用于啟動一個異步任務&#xff0c;并返回一個std::future對象&#xff1b;std::future對象里含有異步任務線程入口函數的結果&#xff1b; std::launch::deferr…

完美解決微信小程序使用復選框van-checkbox無法選中

由于小程序使用了vant-ui框架&#xff0c;導致checkbox點擊無法選中問題 <van-checkbox value"{{ checked }}" shape"square"><view class"check-content"><view class"checktext">我已閱讀并同意>《用戶協議》…

opencv-目標追蹤

import argparse import time import cv2 import numpy as np# 配置參數 ap argparse.ArgumentParser() ap.add_argument("-v", "--video", typestr,help"path to input video file") ap.add_argument("-t", "--tracker", …

第1天----驗證一個字符串是否是另一個字符串的子串

本文我們將學習如何去驗證一個字符串是否是另一個字符串的子串。 一、小試牛刀&#xff1a; 題目描述 輸入兩個字符串&#xff0c;驗證其中一個串是否為另一個串的子串。 輸入格式 兩行&#xff0c;每行一個字符串。 輸出格式 若第一個串 s 1 是第二個串 s 2 的子串&#xff0c…

java Spring Boot properties多環境配置拆分文件管理

上文 java Spring Boot yml多環境拆分文件管理優化 我們用yml 做了一個多環境配置文件的拆分管理 我們將 application.yml 改為 application.properties 參考代碼如下 spring.profiles.activedev我們知道 yml 是用 : 來區分高低基本 而 properties是直接通過 . 來表達 其他基本…

使用svd 分解的方法對神經網絡模型進行壓縮(能不能壓縮要看秩的大小)

參考和理論 壓縮原理代碼 import torch import numpy as np torch.manual_seed(0)# ------------------------------------ # n:輸入數據維度 # m:輸出數據維度 # ------------------------------------ n = 12 m = 10# ------------------------------------ # 隨機初始化權…

樹形組件淺知

別人寫好的輪子&#xff0c;會用即可 首先&#xff0c;需要安裝依賴&#xff0c;npm install --save riophae/vue-treeselect 如果使用npm 不行 那么就使用 yarn add --save riophae/vue-treeselect 然后在使用的地方引入即可 // import the componentimport Treeselect from…

微信ipad協議8.0.40 加好友功能

友情鏈接 geweapi.com 點擊即可訪問&#xff01; 好友請求驗證 小提示&#xff1a; v_3 v_4 可以參考 搜索接口 請求URL&#xff1a; http://域名地址/api/contacts/verifyuser 請求方式&#xff1a; POST 請求頭&#xff1a; Content-Type&#xff1a;application/js…

SpringCloud實用篇7——深入elasticsearch

目錄 1 數據聚合1.1 聚合的種類1.2 DSL實現聚合1.2.1 Bucket聚合語法1.2.2 聚合結果排序1.2.3 限定聚合范圍1.2.4 Metric聚合語法1.2.5.小結 1.3 RestAPI實現聚合1.3.1 API語法1.3.2 業務需求1.3.3 業務實現 2 自動補全2.1 拼音分詞器2.2 自定義分詞器2.3 自動補全查詢2.4 實現…

POJ 1995 Raising Modulo Numbers 快速冪

一、總結 我一開始擔心溢出&#xff0c;開了一個無符號的long long&#xff0c;但是直接超時&#xff0c;后來一看它的mod不是很大&#xff0c;于是改成int&#xff0c;直接過了。 二、代碼 #include <iostream> using namespace std; int H, Z; int M; int mulMod(in…

P1217 [USACO1.5] 回文質數 Prime Palindromes

P1217 [USACO1.5] 回文質數 Prime Palindromes - 洛谷 | 計算機科學教育新生態 (luogu.com.cn) # [USACO1.5] 回文質數 Prime Palindromes ## 題目描述 因為 $151$ 既是一個質數又是一個回文數&#xff08;從左到右和從右到左是看一樣的&#xff09;&#xff0c;所以 $151$ …

Python基礎教程:私有變量的訪問和賦值教程

嗨嘍~大家好呀&#xff0c;這里是魔王吶 ? ~! 首先我們這里先描述下&#xff1a; Python中&#xff0c;變量名類似__x__的&#xff0c;以雙下劃線開頭&#xff0c;并且以雙下劃線結尾的&#xff0c;是特殊變量&#xff0c;特殊變量是可以直接訪問的&#xff08;比如 doc, __i…

SpringBoot3集成ElasticSearch

標簽&#xff1a;ElasticSearch8.Kibana8&#xff1b; 一、簡介 Elasticsearch是一個分布式、RESTful風格的搜索和數據分析引擎&#xff0c;適用于各種數據類型&#xff0c;數字、文本、地理位置、結構化數據、非結構化數據&#xff1b; 在實際的工作中&#xff0c;歷經過Ela…

南大通用數據庫(gbase 8s) 在Centos7環境 集群安裝

國產數據庫-達夢 一、環境詳情二、Centos7 參數優化&#xff08;所有節點&#xff09;三、創建gbase用戶&#xff08;所有節點&#xff09;四、 安裝部署&#xff0c;只在node1 安裝即可同步五、數據庫卸載六、數據庫連接與使用 當前安裝 在指定版本環境下 測試&#xff0c;僅供…