1. 程式人生 > >根據年月以及月中周次,獲取該周開始,結束日期

根據年月以及月中周次,獲取該周開始,結束日期

注意,是該月中的周次,一週最多有6周。

        <span style="background-color: rgb(102, 51, 255);">//獲取周開始日期和結束日期(週日-週六)
        public string GetWeekDate(int yearly, int monthly, string weekly)
        {
            string dayStr="";

            try
            {
                DateTime day1 = DateTime.Parse(yearly.ToString() + "-" + monthly.ToString() + "-01");//該月第一天日期
                int weekOfDay1 = (Int32)day1.DayOfWeek;//該月第一天是周幾
                int dayCount = DateTime.DaysInMonth(yearly, monthly);//該月天數

                int endDay = 0;//結束日
                DateTime dateEnd = DateTime.Now;//周結束日期,初始化為當前時間

                //7*周次 - 第一週中上月天數 > 本月天數
                if (7 * Int32.Parse(weekly) - weekOfDay1 > dayCount)
                {
                    endDay = 7 * Int32.Parse(weekly) - weekOfDay1 - dayCount;
                    DateTime dateLast = DateTime.Parse(yearly.ToString() + "-" + monthly.ToString() + "-" + dayCount.ToString());//該月最後一天日期
                    dateEnd = dateLast.AddDays(endDay);
                }
                //7*周次 - 第一週中上月天數 > 本月天數
                if (7 * Int32.Parse(weekly) - weekOfDay1 <= dayCount)
                {
                    endDay = 7 * Int32.Parse(weekly) - weekOfDay1;
                    dateEnd = DateTime.Parse(yearly.ToString() + "-" + monthly.ToString() + "-" + endDay.ToString());
                }

                DateTime dateStart = dateEnd.AddDays(-6); //周開始日期

                dayStr = dateStart.ToString("yyyy-MM-dd") +" ~ " + dateEnd.ToString("yyyy-MM-dd");
            }
            catch (Exception)
            {
                throw;
            }
            return dayStr;
        }</span>


呼叫:var resultWeekDay = GetWeekDate(2015, 4, 5);//4月第5周

結果:2015-04-26  ~ 2015-05-02

相關推薦

根據年月以及月中獲取開始結束日期

注意,是該月中的周次,一週最多有6周。 <span style="background-color: rgb(102, 51, 255);">//獲取周開始日期和結束日期(週日-週六) public string GetWeek

js根據某個日期獲取日期的前一個星期六以及後一個星期五

//獲取時間段 var date = new Date(); //標準日期格式yyyy/mm/dd var weekByDate = date.substring(0, 4) + "/" + date.substring(5

切面的用法獲取切點的引數以及返回值

監聽到了impl下面的所有的方法     ps:注意   由@Before註解定義的方法會在 execution() 表示式內的方法被呼叫之前執行 由@After註解定義的方法會在 execution()表示式內的方法被呼叫

MYSQL----根據指定時間獲取指定星期幾的資料

根據當前時間獲取本週的資料,但是每天的資料要分開,比如(週一、週二、週三....) mysql寫法是這樣的: SELECT * FROM table  WHERE  table.time  =  DATE_SUB('2018-08-22',INTERVAL WEEKDAY

認識Javascript中的navigator物件以及檢測瀏覽器型別和版本獲取瀏覽器版本號檢測客戶端作業系統

Navigator物件包含了Web瀏覽器的基本資訊(如名稱,版本,作業系統等) 通過window.navigator方式可以引用該物件,並利用它的屬性讀取客戶端基本資訊 Navigator的5個主要屬性: appName:Web瀏覽器的名稱 appVersion:瀏覽器的

SQL 輸出某一天所在的年月對應的所有星期的開始結束日期(每個月僅算4第四周可能會有10天)

背景:有時侯導報表需要動態計算每個月對應每週的第一天與最後一天。最後一週的時間要求不需要僅精確到第7天,可以算10天。 USE [***] GO /****** Object: StoredProcedure [dbo].[sp_CalcStartDateEndDate

根據月份獲取月第一天和下個月第一天的Date值

使用者需求是根據月份來篩選本月的所有資料,前端傳來的是"yyyy-MM"格式的字串,這樣就需要後端處理下,弄成兩個Date去資料庫查詢。由於每個月最後一天不固定,所以想法是用當月第一天和次月第一天去查詢,轉換程式碼如下: ** * 時間轉化工具 * author: we

java實現單鏈表(增加節點刪除節點根據下標獲取節點獲取連結串列大小連結串列逆序)

最近面試被問到連結串列的問題很多,讓自己寫一個連結串列,並實現連結串列逆序,自己突然發現,用java實現連結串列還真是一件費時的事情,更何況筆試那點時間。現在做一下記錄,如果有錯誤,希望看見的人能指出

python實現QQ機器人(自己主動登錄獲取群消息發送群消息)

keep fine 繼續 fill iss data while [0 ssi 一次偶然的機會我看見了一個群裏的一個QQ號總是依據你所發的消息自己主動回復,當時非常感覺到奇妙。我知道能夠模擬登錄站點,沒想到居然也能模擬登錄QQ,首先自己想到的就是怎樣實現模擬登錄PC端的

C#根據字體名通過註冊表獲取字體文件路徑(win10)

cat mic 約束 lec 運行 window mac war 控件 方法一: 直接先上源碼: private System.Collections.Generic.SortedDictionary<string, string> ReadF

給定一個二叉樹獲取二叉樹的寬度深度

prototype %d param unsigned right idt height push signed 題目: Description 給定一個二叉樹,獲取該二叉樹的寬度深度。 Prototype int GetBiNo

自動登錄TP-LINK路由器獲取所有信息重啟等等實用方法

cti host ads date output png ict .text 只有一個 用Python自動登錄TP-LINK路由器,獲取信息,重啟等操作 思路:想獲取TP-LINK裏面的所有信息,必須首先登錄,然後提交相應的操作(比如重啟) 1、 做任何操作,首先得登錄到

微信小程序的按下擡起事件下拉選擇框的事件及點擊確定的方法函數獲取時間的方法省市區的方法。

bin img util req fun data hang UNC 日期 擡起按下的事件: 擡起事件: bind:touchstart="nanOne" 把這條屬性放到標簽裏就可以了 在JS中 nanOne: function () {     this.setDa

嵌入式Linux標準IO獲取檔案大小fgetc()定位流獲取檔案大小fteel()、rewind()/fseek()處理錯誤資訊perror()/strerror()

#include <stdio.h> #include <errno.h> #include <string.h> int get_file_size(const char *file); int main(int argc, const char *a

java w3c解析xml檔案獲取指定節點內容讀取外部配置檔案。

原始碼: package com.ys.adage.utils; import com.ys.adage.message.CodeObjectResult; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.

javascript獲取季度的開始結束日期

var y = new Date().getFullYear(); //當前年份 var m = new Date().getMonth(); //當前月份 var q = parseInt(m / 3); //當前季度 var qs = new Date(y, (q - 1) * 3,

使用AddPermission獲取Android6.o許可權附上一個自定義的dialog簡單實用。

先來看看效果。。 1.新增AddPermission的依賴 gitbub地址:https://github.com/yanzhenjie/AndPermission implementation ‘com.yanzhenjie:permission:2.0.0-rc1

C#如何操控FTP獲取FTP檔案或資料夾列表獲取FTP檔案大小FTP上傳FTP刪除檔案FTP新建資料夾、刪除資料夾

C#如何操控FTP 出處:http://www.cnblogs.com/rond/archive/2012/07/30/2611295.html,http://www.cnblogs.com/rond   關於FTP的應用免不了要對FTP進行增刪查改什麼的。通過搜尋,整理和修改

微信網頁授權獲取微信code獲取access_tocken,獲取使用者資訊

微信開發中,經常有這樣的需求:獲得使用者頭像、繫結微訊號給使用者發信息.. 那麼實現這些的前提就是授權!   1.配置安全回撥域名:   在微信公眾號請求使用者網頁授權之前,開發者需要先到公眾平臺官網中的“開發 - 介面許可權 - 網頁服務 - 網頁帳號 - 網

extjs3 分頁操作(帶查詢條件)獲取頁碼、開始行、分頁大小

一、分頁操作 extjs3.x版本做分頁操作時,只需配置PagingToolbar 即可,總的來說還是比較方便的,但是預設情況下是不能進行帶查詢條件的分頁操作的,如何解決呢? //xxx表示檔名,xxx.js xxx.prototype.grid=function(){