已經某天是星期幾,求某天是星期幾

2021-08-30 20:17:30 字數 1488 閱讀 9955

昨天在一家公司面試,叫我用儲存過程求得下述問題:已知某一天是星期幾,求某天是星期幾,例:已知2023年8月5號星期四,求2023年8月23號星期幾?

下面是我寫的儲存過程,由於是剛剛學,所以問題還很多,望各位大蝦們指教。

/* formatted on 2010-8-23 16:29:26 (qp5 v5.149.1003.31008) */

create or replace procedure get_weekday (

in_date in varchar, -- 輸入日期

in_weekday in integer, -- 星期幾 0 星期天、1 星期一 類推

out_date in varchar, -- 要查詢的日期

out_weekday out integer) -- 輸入星期幾 0 星期0、1 星期1 類推【人懶,就不轉換了】

asout_day integer;

begin

select to_date (out_date, 'yyyy-mm-dd') - to_date (in_date, 'yyyy-mm-dd') -- 查詢的日期和提供的日期相減

into out_day

from dual;

if out_day >= 0 -- 相減得到的如果是正數

then

select mod (mod (out_day, 7) + in_weekday, 7)

into out_weekday

from dual;

else -- 如果是負數

select mod (mod (out_day + 7, 7) + in_weekday, 7)

into out_weekday

from dual;

end if;

end;

執行後呼叫此儲存過程

/* formatted on 2010-8-23 16:13:01 (qp5 v5.149.1003.31008) */

set serverout on; --開啟輸出開關

declare

v_ret integer;

begin

get_weekday ('2010-08-25',

3,'2010-08-24',

v_ret); --執行上面的儲存過程

dbms_output.put_line ('2023年8月24號,星期' || v_ret );

end;

得到如下結果

2023年8月24號,星期2

初步實現

某天是星期幾

題目描述 澤勒一致性是由克里斯汀 澤勒開發的用於計算某天是星期幾的演算法。這個公式是 h q 26 m 1 10 k k 4 j 4 5j mod 7 其中 一 h 是乙個星期中的某一天 0 為星期六,1 為星期天,2 為星期一 6 為星期五 二 q 是某月的第幾天 三 m 是月份 3 為三月,4 ...

判斷某天是星期幾

判斷某天是星期幾 public static boolean isleapyear int year 理論基礎 日期格式 y m d,y為年份數 y 1582 m為月份數 02 m m 12 m 3 d為日。相比於通用通用計算公式而言,蔡勒 zeller 公式大大降低了計算的複雜度。3 基姆拉爾森計...

ACM之 求某天是星期幾

演算法如下 基姆拉爾森計算公式 w d 2 m 3 m 1 5 y y 4 y 100 y 400 mod 7 在公式中d表示日期中的日數 1,m表示月份數,y表示年數。注意1 在公式中有個與其他公式不同的地方 把一月和二月看成是上一年的十三月和十四月,例 如果是2004 1 10則換算成 2003...