1. 程式人生 > >判斷某一年天數的問題

判斷某一年天數的問題

—以前寫關於年數天數的演算法都是用各種if語句判來判去的,沒有想過簡化一下,昨天看了打魚還是晒網的的演算法,發現了一段簡練清晰的程式碼(一下是c語言程式碼,不過思想是普遍適用的)

int days(struct date day) { 
//這裡首先定義一個關於閏年和非閏年每一個月天數的二維陣列
    const int month_days[2][13] = {{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},     //非閏年每一個月的天數
                                                {0, 31
, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}}; //閏年每一個月的天數 int i, lp=0; if(day.year%4 == 0 && day.year %100!=0 || day.year%400 == 0) lp=1; //lp用來判斷是否閏年 ... }

雖然使用了一個二維陣列的空間,不過我覺得在程式碼簡潔方面我還是傾向於這種寫法,這段程式碼可以適用很多種情況, 只要是涉及到年份天數判斷的都可以借鑑一下. 也歡迎指正和補充

相關推薦

判斷天數的問題

—以前寫關於年數天數的演算法都是用各種if語句判來判去的,沒有想過簡化一下,昨天看了打魚還是晒網的的演算法,發現了一段簡練清晰的程式碼(一下是c語言程式碼,不過思想是普遍適用的) int days(struct date day) { //這裡首先定

C++入門經典-例3.6-判斷是否是閏年之復合表達式法

es2017 else style one .cn mes gif 年份 c++ 1:代碼如下: // 3.6.cpp : 定義控制臺應用程序的入口點。 // #include "stdafx.h" #include <iostream> using na

c語言判斷是否為閏年的各種實現程序代碼

ID .cn keyword get erl AI text 參考 num 本文導語: c語言判斷某一年是否為閏年的各種實現程序代碼1、公歷閏年計算原則(按一回歸年365天5小時48分45.5秒)1)普通年能整除4且不能整除100的為閏年。(如2004年就是閏年

java Calendar類判斷是否為閏年

    分析:     建立Calendar c = Calendar.getInstance();     通過set方法設定為那一年的3月1日     將日向前減去1     判斷日是多

java Calendar類判斷是否為閏年

    分析:     建立Calendar c = Calendar.getInstance();     通過set方法設定為那一年的3月1日     將日向前減去1     判斷日是多少天,如果是29天返回true否則返回false  private static

利用JAVA實現判斷是否為閏年

給定一個年份,判斷是否是閏年。條件為: A:能被4整除,並且不能被100整除。或者 B:能被400整除。 分析: 首先題目中的A與B為兩個判斷閏年為真的選項,且屬於“非A則B”的情況,在這裡往往很容易想到如下結構來解決此問題 if(判斷條件A成

判斷是閏年還是平年

一、首先我們應該知道怎樣判斷一年是否為閏年 條件:能被4整除且不能被100整除或者能被400整除的年份為閏年 二、程式碼 int main() { int year, leap; //定義兩

實例15 判斷是否為閏年

str sys package 提示 控制臺輸出 實例 except 是否 import package wjf; import java.util.Scanner; public class wjf1{ public static void main(Str

JavaScript查詢是否為閏年

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>閏年計算器</title> </head> <

python實現:判斷天是那年中的第幾天

1.使用內建函式(strftime是一種計算機函式,根據區域設定格式化本地時間/日期,函式的功能將時間格式化,或者說格式化一個時間字串。關於strftime的具體用法見百度百科:https://baike.baidu.com/item/strftime/9569073?fr=aladdin)

C/C++中判斷檔案或目錄是否存在

2.利用 c 語言的庫的辦法: 函式名: access 功  能: 確定檔案的訪問許可權 用  法: int access(const char *filename, int amode); 以前一直沒用過這個函式,今天除錯程式發現了這個函式,感覺挺好用,尤其是判斷一個檔案或資料夾是否存在的時候,用不著再fi

C#判斷判斷時刻屬於什麼時間段

問題描述:         在做一個餐廳訂單資料視覺化的小應用,訂單發生時間格式為“2018-09-30 20:38:03”需要將他對映到早餐,午餐,晚餐,用C#實現。 解決方案: static void Main(string

C/C++ 中判斷檔案或目錄是否存在

1 #include 2 #include 3 4 using namespace std; 5 6 #define FILENAME “*.dat” // 指定檔名 7 8 int main( void ) 9 { 10 fstream _fi

獲取一月有多少天

方法一:獲取當前月份有多少天 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dt

php獲取的工作日列表

<?php //節假日 $holidays = [ '20160101', '20160208', '20160209', '20160210', '20160211', '20160212', '20160304',

快速判斷個數組是否是另個數組的子集

給定兩個無序陣列:陣列arr1[0…m-1] 和 陣列arr2[0…n-1] ,判斷陣列arr2是否是arr1的子集。 比如 arr1[] = {11, 1, 13, 21, 3, 7} arr2[] = {11, 3, 7, 1} 輸出true arr1

sql 查詢資料

資料庫查詢某年資料(sql server) select *from 表名 where YEAR(存時間的欄位名) =某年select *from News where YEAR(addDate) =

mysql 根據 查詢12個月的資料

1、時間欄位是datetime型別 2、需要用到中間表,表結構和資料鏈接下載 https://pan.baidu.com/s/1sAQ78e3Ao-KwvYJlaipbKQ 3、前兩個 adddate 月日需要在資料庫寫死 從每年的-01-01開始,-最後一個日期同理xxxx-12-31 4、下面是s

mysql 根據 查詢12個月的數據

ima .com 數據 and datetime mon etime baidu try 1、時間字段是datetime類型 2、需要用到中間表,表結構和數據鏈接下載 https://pan.baidu.com/s/1sAQ78e3Ao-KwvYJlaipbKQ 3、前兩個

js 獲取的所有自然周

<html> <head> <title></title> <meta charset="UTF-8" /> </head> <body> <script>