C 中時間計算彙總

2021-06-16 10:43:06 字數 4833 閱讀 5845

這幾天要做乙個關於時間資料統計的頁面,發現有些東西還是比較用的,現總結如下。

datetime dt = datetime.now;  //當前時間

datetime startweek = dt.adddays(1- convert.toint32(dt.dayofweek.tostring("d")));  //本週周一

datetime endweek = startweek.adddays(6);  //本週週日

datetime startmonth = dt.adddays(1- dt.day);  //本月月初

datetime endmonth = startmonth.addmonths(1).adddays(-1);  //本月月末

//datetime endmonth = startmonth.adddays((dt.addmonths(1) - dt).days - 1);  //本月月末

注:實際上面的統計不算很準確,為什麼這麼說呢,比如我要統計當天這一月中的資料,比如今天是:2013-01-16 17:20:37 那麼最後獲取的本月月末的時間就是2013-01-31 17:20:37,那麼這就是說2013-01-31 17:20:37---2013-01-31 24:00:00這段時間的就沒統計進來,所以最好的就是根據datetime.now.date;這個函式獲取整日的再+1一天,通過where條件《下個月最開始的日期來進行統計就可以了。

datetime startquarter = dt.addmonths(0- (dt.month -1) %3).adddays(1- dt.day);  //本季度初

datetime endquarter = startquarter.addmonths(3).adddays(-1);  //本季度末

datetime startyear =new datetime(dt.year, 1, 1);  //本年年初

datetime endyear =new datetime(dt.year, 12, 31);  //本年年末

至於昨天、明天、上週、上月、上季度、上年度等等,只要adddays()、addmonths()、addyears()這幾種方法組合一下就可以了。 c#中datetime的使用 //如果你還不明白,再看一下中文顯示星期幾的方法就應該懂了

//由於dayofweek返回的是數字的星期幾,我們要把它轉換成漢字方便我們閱讀,有些人可能會用switch來乙個乙個地對照,其實不用那麼麻煩的

string day =newstring ;

string week = day[convert.toint32(datetime.now.dayofweek.tostring("d"))].tostring(); //上週,同理,乙個週是7天,上週就是本週再減去7天,下週也是一樣datetime.now.adddays(convert.toint32 (1- convert.toint32(datetime.now.dayofweek)) -7);        //上週一

datetime.now.adddays(convert.toint32 (1- convert.toint32(datetime.now.dayofweek)) -7).adddays(6);     //上周末(星期日) //下週datetime.now.adddays(convert.toint32 (1- convert.toint32(datetime.now.dayofweek)) +7);        //下周一

datetime.now.adddays(convert.toint32(1- convert.toint32(datetime.now.dayofweek)) +7).adddays(6);      //下週末 //本月,很多人都會說本月的第一天嘛肯定是1號,最後一天就是下個月一號再減一天。當然這是對的 //一般的寫法

datetime.now.year.tostring() + datetime.now.month.tostring() +"1"; //第一天

datetime.parse(datetime.now.year.tostring() + datetime.now.month.tostring() +"1").addmonths(1).adddays(-1).toshortdatestring();//最後一天 //巧用c#裡tostring的字元格式化更簡便

datetime.now.tostring("yyyy-mm-01");

datetime.parse(datetime.now.tostring("yyyy-mm-01")).addmonths(1).adddays(-1).toshortdatestring(); //上個月,減去乙個月份

datetime.parse(datetime.now.tostring("yyyy-mm-01")).addmonths(-1).toshortdatestring();

datetime.parse(datetime.now.tostring("yyyy-mm-01")).adddays(-1).toshortdatestring(); //下個月,加去乙個月份

datetime.parse(datetime.now.tostring("yyyy-mm-01")).addmonths(1).toshortdatestring();

datetime.parse(datetime.now.tostring("yyyy-mm-01")).addmonths(2).adddays(-1).toshortdatestring(); //7天後

datetime.now.date.toshortdatestring(); datetime.now.adddays(7).toshortdatestring(); //7天前

datetime.now.adddays(-7).toshortdatestring();

datetime.now.date.toshortdatestring(); //本年度,用tostring的字元格式化我們也很容易地算出本年度的第一天和最後一天

datetime.parse(datetime.now.tostring("yyyy-01-01")).toshortdatestring();

datetime.parse(datetime.now.tostring("yyyy-01-01")).addyears(1).adddays(-1).toshortdatestring(); //上年度,不用再解釋了吧

datetime.parse(datetime.now.tostring("yyyy-01-01")).addyears(-1).toshortdatestring();

datetime.parse(datetime.now.tostring("yyyy-01-01")).adddays(-1).toshortdatestring(); //下年度

datetime.parse(datetime.now.tostring("yyyy-01-01")).addyears(1).toshortdatestring();

datetime.parse(datetime.now.tostring("yyyy-01-01")).addyears(2).adddays(-1).toshortdatestring(); //本季度,很多人都會覺得這裡難點,需要寫個長長的過程來判斷。其實不用的,我們都知道一年四個季度,乙個季度三個月 //首先我們先把日期推到本季度第乙個月,然後這個月的第一天就是本季度的第一天了datetime.now.addmonths(0- ((datetime.now.month -1) %3)).adddays(1- datetime.now.day); //同理,本季度的最後一天就是下季度的第一天減一datetime.parse(datetime.now.addmonths(3- ((datetime.now.month -1) %3)).tostring("yyyy-mm-01")).adddays(-1).toshortdatestring(); //下季度,相信你們都知道了。。。。收工

datetime.now.addmonths(3- ((datetime.now.month -1) %3)).tostring("yyyy-mm-01");

datetime.parse(datetime.now.addmonths(6- ((datetime.now.month -1) %3)).tostring("yyyy-mm-01")).adddays(-1).toshortdatestring(); //上季度datetime.now.addmonths(-3- ((datetime.now.month -1) %3)). adddays(1- datetime.now); datetime.now.addmonths(0- ((datetime.now.month -1) %3)).adddays(1- datetime.now.day).adddays(-1).toshortdatestring();

√字串轉換為日期型(c#)

如:"20100101"轉換成日期型?

"20100101"轉換成int型怎麼轉換??

1、datetime dt=convert.todatetime("20100101".substring(0,4)+"-"+"20100101".substring(4,2)+"-"+"20071107".substring(6,2)); int i=convert.toint32("20100101");

2、convert.todatetime、datetime.parse()

3、string str ="20100101"; datetime dt = datetime.parseexact(str, "yyyymmdd", null); int i; int.tryparse(str, out i);

4、定義乙個datetimepicker物件,然後將需要轉化的字串賦給這個datetimepicker物件的text屬性, 然後datetimepicker物件的value值就是你需要的日期和時間,value值還有minite,second等屬性,可以取得 時,分,秒,豪秒等值.

C 中如何計算時間差

c 中怎麼計算兩時間相差多少。計算2個時間之間的差,可以計算到時分秒 1 label1.text 2004 1 1 15 36 05 label2.text 2004 3 1 20 16 35 datetime d1 new datetime 2004,1,1,15,36,05 datetime d...

C 時間間隔計算

c 時間比較 c 時間間隔計算 c 事件比較直接可以用減法,即timespan ts1 datetime.now datetime.now.adddays 1 它返回的是乙個時間間隔。它有如下屬性 days 獲取當前 timespan 結構所表示的時間間隔的天數部分。hours 獲取當前 times...

c 時間計算模組

可用於計算 執行耗時 計算 執行時間線 比如處理與執行時間相關函式 該模組從實際專案中產生,使用方式仁者見仁智者見智,設計思想可供參考。author cai bingcheng,2018 pragma once include include class getcosttime namespace ...