使用Calendar需要注意clear

2021-06-23 00:42:18 字數 1587 閱讀 2120

date是前台傳的值,格式為2014-01-01的形式:如下的**是去date日期當月的最大天數日期

int month_ = integer.parseint(date.substring(5,7)); //取天數

int year = integer.parseint(date.substring(0,4));//取年份

******dateformat sdf = new ******dateformat("yyyy年mm月dd日");

calendar cal = calendar.getinstance();

cal.clear();//必須使用,否則會繼承自系統當前時間 //這行資料一定不能省,否則會繼承系統當前的時間

//之前在專案中一直遇到這種問題,輸二月份,結果得到30或31天。只要有set的方法必須clear.

cal.add(calendar.year, year);

// 下面可以設定月份,注:月份設定要減1,所以設定1月就是1-1,設定2月就是2-1,如此類推

cal.set(calendar.month, month_ - 1);

// 調到上個月

// cal.add(calendar.month, -1);

// 得到乙個月最最後一天日期(31/30/29/28)

int maxday = cal.getactualmaximum(calendar.day_of_month);

// 按你的要求設定時間

cal.set(cal.get(calendar.year), cal.get(calendar.month), maxday, 23,

59, 59);

string now_date = sdf.format(cal.gettime());

int year = integer.parseint(date.substring(0,4));

system.out.println("month_:"+month_);

******dateformat sdf = new ******dateformat("yyyy年mm月dd日");

calendar cal = calendar.getinstance();

cal.clear();//必須使用,否則會繼承自系統當前時間

cal.add(calendar.year, year);

// 下面可以設定月份,注:月份設定要減1,所以設定1月就是1-1,設定2月就是2-1,如此類推

cal.set(calendar.month, month_ - 1);

// 調到上個月

// cal.add(calendar.month, -1);

// 得到乙個月最最後一天日期(31/30/29/28)

int maxday = cal.getactualmaximum(calendar.day_of_month);

// 按你的要求設定時間

cal.set(cal.get(calendar.year), cal.get(calendar.month), maxday, 23,

59, 59);

string now_date = sdf.format(cal.gettime());

C 使用erase介面需要注意!!

本來我是不怎麼關注過這個點的,但是今天的一道題把我給難住了,看過答案之後才知道就是因為我對於erase介面使用的不了解造成的,所以特意把這道題拿出來說一下 題目要求是給出以下 的輸出結果 include includeusing namespace std int main for it a.beg...

C 需要注意點

11 設定static成員變數初值時,不受任何訪問許可權的束縛。可以再還沒有誕生任何物件的時候就處理static型別成員變數,但首先必須初始化它。2 只要access level允許,任何函式都可以訪問static成員變數。但如果你希望在產生任何object之前就訪問其class的private s...

使用SqlSession 需要注意的

sqlsessionfactorybuilder 是用於建立sqlseesionfactory的,將sqlsessionfactorybuilder當成乙個工具類來使用 sqlseesionfactory 會話工廠,是乙個單例的,用於建立sqlsession,sqlsessionfactory一旦建...