c#中與sql中求本週是本年的第幾周最近的乙個 周報表 既需要c#求本週是今年的第幾周 又需要在儲存過程裡 通過sql求。
在 sql裡 有函式可以直接求出。但是在c#裡 沒有直接的屬性或函式,必須自己來算。
c#裡可以知道今天是本週的第幾天,還可以知道今天是本年的第幾天。這樣我們就可以求出本週是今年的第幾周。 有兩種思路:
1、 可以先算出 上周末是哪天,然後算出上週是第幾周,(演算法是: 用7整除上周末在今年的天數 如果能被整除則 結果就是上週在今年的第幾周,否則 結果+1 ) 最後再 + 1, 就是本週的順序。
例如:**private
intdatepart(system.datetime dt)
//此時,weeks為上週是本年的第幾周
return
(weeks +1
);
} 2、 先計算今年的1月1日是一周中的第幾天,然後用 今天在今年的天數 - 它 + 7,最後直接 用7除這個數 有餘數則+1 即為本週的順序,整除則不加1。
**就不列了。
在sql中,利用函式 datepart(week,getdate()) 直接得到結果。
需要注意的是: datepart(dw,getdate()) 得到的 weekday結果是 1--7
而 c# datetime1.dayofweek 得到的 是 0--6
不過,有一點他們是一樣的 就是 sunday 都是本週的第一天。
最後,通過這些我們可以判斷
本週的起止日期:
sqlserver中
weekstart = convert(varchar(100),(getdate()-datepart(dw,getdate()) +1),23)
weekend = convert(varchar(100),(getdate()-datepart(dw,getdate()) +7),23)
c#中 就不用說了
weekstart = datetime.now.adddays(-(int)datetime.now.dayofweek).tostring("yyyy-mm-dd")
weekend = datetime.now.adddays(6-(int)datetime.now.dayofweek).tostring("yyyy-mm-dd")
C 求無序序列中第k小的元素
c 求無序序列中第k小的元素 利用優先佇列 priority queue 求出乙個無序整數列中第k小的元素 先輸入序列長度 再輸入該整數列 最後輸入第k小元素位置 k 實驗例子 5 序列長度 2 4 3 6 5 該整數列 2 第k小元素位置 3 輸出結果 如下 include include usi...
c 求區間第k大數 陣列中求第K大數的實現方法
問題 有乙個大小為n的陣列a 0,1,2,n 1 求其中第k大的數。該問題是乙個經典的問題,在 演算法導論 中被作為單獨的一節提出,而且其解決方法很好的利用了分治的思想,將時間複雜度控制在了o n 這多少出乎我們的意料,此處暫且不表。該問題還可以變形為 有乙個大小為 n的陣列a 0,1,2,n 1 ...
C 中的ref和out與SQL中的output
有時,我們會需要獲取某個值在方法中的執行狀態,根據定義的方法,我們僅僅能夠獲得乙個返回值,但是,有時我們也許想獲取多個值,通過返回值就不能返回這樣的資訊,我們可以通過在引數前使用ref或out,以得到多個返回值.在執行sql儲存過程時,我們可以通過sql語句在儲存過程中的執行狀態,返回相應的值.sq...