Re: [請益] 請教高手要加3個月的程式寫法

看板Soft_Job作者 (不要再下雨了啦)時間11年前 (2013/04/01 23:47), 編輯推噓5(5021)
留言26則, 11人參與, 最新討論串5/6 (看更多)
報告一下,這時候就覺得 C# 真的是很可愛了。 照目前的 test cases 來說,C# 真的只要一個 AddMonth(3) 就結束了。 請見: https://gist.github.com/hatelove/5285685 ※ 引述《ppking (老宅男)》之銘言: : 如有一個起的變數是2013/04/01 : 則迄的值就為2013/07/01 : 但如遇到2013/03/31 : 則迄的值就要為2013/06/30 : 目前遇到困擾是31日及2月底日期的判斷 : 造成程式寫法要寫很多if寫法 : 不知各位高手有沒有比較簡單的寫法 就可寫出 : 謝謝 : IF MONTH(s_date) >= 10 THEN : LET e_date=MDY(MONTH(s_date)-9,DAY(s_date),YEAR(s_date)+1) : ELSE : LET e_date=MDY(MONTH(s_date)+3,DAY(s_date),YEAR(s_date)) : END IF : IF e_date IS NULL THEN : IF MONTH(s_date) >= 9 THEN : LET e_date=MDY(MONTH(s_date)-8,DAY(s_date),YEAR(s_date)+1) : ELSE : LET e_date=MDY(MONTH(s_date)+4,DAY(s_date),YEAR(s_date)) : END IF : LET e_date = MDY(MONTH(e_date),1,YEAR(e_date)) - 1 : END IF -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.250.141.100

04/02 00:13, , 1F
確定 test case 有過?感覺好像還是得處理例外,阿不然就太
04/02 00:13, 1F

04/02 00:13, , 2F
神奇了 XD
04/02 00:13, 2F

04/02 00:14, , 3F
當然有過囉...不然我就不會貼出來啦 需要附圖嗎? XD
04/02 00:14, 3F

04/02 00:25, , 4F
試一下 2013-11-30 跟 2015-11-29 ?
04/02 00:25, 4F

04/02 00:42, , 5F
恩 一樣OK囉,我把新的test cases更新上去
04/02 00:42, 5F

04/02 00:45, , 6F
其實我也覺得挺神奇的 XD
04/02 00:45, 6F

04/02 00:48, , 7F
MSDN說明:http://goo.gl/EC87J
04/02 00:48, 7F

04/02 00:50, , 8F
把MSDN說明更新上gist了
04/02 00:50, 8F

04/02 00:54, , 9F
別懷疑,就是那麼神奇
04/02 00:54, 9F

04/02 00:58, , 10F
照MSDN的解釋,要自己實作出來其實也挺簡單的就是了。
04/02 00:58, 10F

04/02 01:14, , 11F
真是人性化 XD (抱著 PHP 哭泣中)
04/02 01:14, 11F

04/02 06:39, , 12F
這樣一說,直接用JS Date object不就行了?
04/02 06:39, 12F

04/02 08:58, , 13F
的確如l大所貼的需求,c++提供的函數滿棒的,不用自己再製作
04/02 08:58, 13F

04/02 09:30, , 14F
M$終歸還是M$ XD
04/02 09:30, 14F

04/02 12:13, , 15F
JS 記得不行 會跟PHP一樣
04/02 12:13, 15F

04/02 15:30, , 16F
C++ 也可以很簡單啊 http://goo.gl/EhYM1 靠 boost 威能
04/02 15:30, 16F

04/02 21:30, , 17F
Python 有 module 的話這個也是 one-liner
04/02 21:30, 17F

04/02 21:31, , 18F
其實就是有沒有人先幫你做好輪子的問題而已
04/02 21:31, 18F

04/02 21:46, , 19F

04/02 22:02, , 20F
http://git.io/LbASjQ Ruby 的語法好詭異XD
04/02 22:02, 20F

04/02 22:30, , 21F
ruby 那個真的很詭異...
04/02 22:30, 21F

04/03 03:32, , 22F
var d = new Date(); d.setMonth(d.getMonth()+3);
04/03 03:32, 22F

04/03 03:33, , 23F
沒有不行的道理~
04/03 03:33, 23F

04/03 16:14, , 24F
所以js 這樣寫,也會直接跳年份,抓月底啊?
04/03 16:14, 24F

04/09 00:26, , 25F
PHP: $d = new DateTime('2006-12-12'); $d->modify('+3 mo
04/09 00:26, 25F

04/09 00:26, , 26F
nths'); (5.3.0以上)
04/09 00:26, 26F
文章代碼(AID): #1HMQlr7_ (Soft_Job)
討論串 (同標題文章)
文章代碼(AID): #1HMQlr7_ (Soft_Job)