1. 程式人生 > >潤乾 -- 判斷任意日期的星期幾

潤乾 -- 判斷任意日期的星期幾

如何判斷任意日期是星期幾,畢竟不是每個月的一號就是星期一。本文簡單介紹一下如何計算出任意一個日期是星期幾。

第一步:製作報表;

如圖所示:

A1單元格根據引數年份和引數月份判斷該月的天數;

A2單元格根據引數年份判斷是否是潤年,如果是則對二月份進行判斷計算出該月總天數;

B1單元格為年份和月份拼成的日期型別,

B2單元格根據B1單元格拼出的該月第一天用relDate函式通過A2單元格獲取的該月總共的天數去計算該月最後一天;

預覽效果:


第二步:用基姆拉爾森計算公式計算星期;

基姆拉爾森計算公式演算法如下:

W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7

在公式中d表示日期中的日數,m表示月份數,y表示年數。

注意:在公式中有個與其他公式不同的地方:

把一月和二月看成是上一年的十三月和十四月,例:如果是2004-1-10則換算成:2003-13-10來代入公式計算。

如圖所示:

將基姆拉爾森計算公式寫在C2單元格:

if(month(B2)==1,round((day(B2)+(2*(month(B2)+12))+(3*((month(B2)+12)+1)/5)+(year(B2)-1)+((year(B2)-1)/4)-((year(B2)-1)/100)+((year(B2)-1)/400))%7,0),month(B2)==2,(round((day(B2)+(2*(month(B2)+12))+(3*((month(B2)+12)+1)/5)+(year(B2)-1)+((year(B2)-1)/4)-((year(B2)-1)/100)+((year(B2)-1)/400))%7,0))+1.0,round((day(B2)+(2*month(B2))+(3*(month(B2)+1)/5)+year(B2)+(year(B2)/4)-(year(B2)/100)+(year(B2)/400))%7,0))

由於返回值是從1至7的數字,所以在顯示值表示式裡寫:

if(map(list(1,2,3,4,5,6,7),list(“星期一“,”星期二“,”星期三“,”星期四“,”星期五“,”星期六“,”星期天“)))即可實現如下圖所示效果:

相關推薦

-- 判斷任意日期星期

如何判斷任意日期是星期幾,畢竟不是每個月的一號就是星期一。本文簡單介紹一下如何計算出任意一個日期是星期幾。第一步:製作報表;如圖所示:A1單元格根據引數年份和引數月份判斷該月的天數;A2單元格根據引數年份判斷是否是潤年,如果是則對二月份進行判斷計算出該月總天數;B1單元格為年

Java任意輸入年月日並判斷這天是星期

import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; impor

請輸入星期的第一個字母來判斷一下是星期,如果第一個字母一樣,則繼續判斷第二個字母。

int code 輸入 stat == print put name pri def juge(num,week_list): w = input(‘請輸入第%s個字母:‘%num) w = w.lower() res = [] state

習題三十一:請輸入星期的第一個字母來判斷一下是星期

請輸入星期幾的第一個字母來判斷一下是星期幾, 如果第一個字母一樣,則繼續判斷第二個字母 Monday 週一 Tuesday 週二 Wednesday 週三 Thursday 週四 Friday  週五 Saturday 週六 Sunday  週日   1 d

My97DatePicker 顯示日期+星期

function weekDay(){ var date=$dp.cal.getP('y')+"-"+$dp.cal.getP('M')+"-"+$dp.cal.getP('d')+" "+showWeek($dp.cal.getP('w')); this.value=date;//this代表當前input

oracle 判斷今天是星期

有人問怎麼判斷今天是星期幾? select to_char(sysdate,'d') from dual     很顯然這句並不能完成要求的功能,因為這只是顯示當前為本星期的第幾天,而老外把星期天當作每個星期的第一天,那麼變通的方法就是求前一天為該周的第幾天,不就相當於今天

JS指令碼顯示當前日期+星期

以下的程式碼提供了顯示當前日期和星期幾的實現方法: function writeDateInfo() {         var day="";         var month="";         var ampm="";         var ampmhour="

PHP 獲取指定日期星期

<?php function   wk($date1) {$datearr = explode("-",$date1);     //將傳來的時間使用“-”分割成陣列$year = $datearr[0];       //獲取年份$month = sprintf('

JAVA的系統時間輸出以及判斷今天是星期

/* 時間: 2012-09-29 程式說明: 實現一個功能:輸出當前的時間和今天是周幾 程式難度: 簡單 程式注意: 一:匯入包 import java.util.*; 二:呼叫函式獲

【程式31】輸入星期的第一個字母來判斷一下是星期(無錯版本)

【題目】:請輸入星期幾的第一個字母來判斷一下是星期幾,如果第一個字母一樣,則繼續判斷第二個字母。 1.程式分析:用情況語句比較好,如果第一個字母一樣,則判斷用情況語句或if語句判斷第二個字母。 2.程式原始碼: #include<stdio.h> int mai

根據日期判斷星期

code return var div .get pan day () class function getMyDay(date){ var week; if(date.getDay()==0) week="星期日" if(date.getDay(

日期類問題-判斷星期

alt truct urn strcmp int 分享圖片 september sunday while 題目及思路: 代碼: #include <stdio.h> #include <string.h> int isLeapYear(int

JAVA判斷當前日期星期

ring orm except [] 星期幾 throw sys string oid package test.ns; import java.text.ParseException; import java.text.SimpleDateFormat; imp

任意時間間隔內某星期的所有對應日期

package java8.date; import java.time.DateTimeException; import java.time.LocalDate; import java.time.temporal.ChronoUnit; import java.util.*; /** *

c++ 計算某個日期星期,判斷某年某月一號是星期

第一種方法 基姆拉爾森計算公式 W = (d + 2 * m + 3 * (m + 1) / 5 + y + y / 4 - y / 100 + y / 400) mod 7 基姆拉爾森計算公式 W = (d + 2 * m + 3 * (m + 1) / 5 + y + y / 4 -

java 日期加減天數、月數、年數的計算方式+java實現給指定日期加固定小時、天、月+java判斷當前日期星期

本篇文章主要介紹一下Calendar類的對時間對一些使用方法:java 日期加減天數、月數、年數的計算方式, java實現給指定日期加固定小時、天、月,java判斷當前日期是星期幾,java判斷某個時間是否在條件時間之內。 程式碼: public static voi

java判斷輸入日期星期

從頁面輸入日期後判斷這個日期是星期幾,並根據結果進行判斷進行不同的操作。 public String getWeek() { Date date = DateUtil.toDate(this.

【c++程式】任意給兩個日期,計算相差多少天和各自星期

#include<iostream> using namespace std; struct Date { int y;//year int m;//month int d;//day in month }; bool isLeap(int y)//判斷是

判斷當前日期星期(Calendar類方法的使用)

        java.util.Calendar(抽象類):它表示一個“日曆”,可以進行日期運算;它是一個抽象類,不能直接使用。我們可以通過它的一個靜態方法:getInstance()獲取一個物件。

JAVA 日期 一個時間段總共周,每一天星期

static art system 指定 保留 當前時間 throws gre 測試 /** * 查詢一個時間段的總周數和查詢當前時間是第幾周 * @param start * @param end * @return *