⑴ java判斷開始時間結束時間
try{
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM");
java.util.Calendar starCalendar = java.util.Calendar.getInstance();
java.util.Calendar endCalendar = java.util.Calendar.getInstance();
String starStr = "2011-11";
String endStr = "2012-02";
java.util.Date starDate = sdf.parse(starStr);
java.util.Date endDate = sdf.parse(endStr);
starCalendar.setTime(starDate);
endCalendar.setTime(endDate);
int instance = endCalendar.compareTo(starCalendar);
while(endCalendar.compareTo(starCalendar)>=0){
System.out.println(sdf.format(starCalendar.getTime()));
//這里我輸出了,你可以自行處理,List等進行操作
starCalendar.add(Calendar.MONTH, 1);
}
}catch(ParseException e){
e.printStackTrace();
}
⑵ 用java怎麼取某年某個季度的開始日期與結束日期
舉例如下
取第一季度開始結束日期
用日歷函數
取該年1月1號
取該年4月1號 將此日期減1 由日歷函數自己給出正確日期
最後一個季度 則取下一年的1月1日 將此日期減1 由日歷函數自己給出正確日期
⑶ java中如何計算本年上月的開始和結束時間
package com.javasky.test2;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class Test6 {
public static void main(String[] args) {
Date nowdate = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
/* 設置為當前時間 */
cal.setTime(nowdate);
System.out.println("當前時間是:" + sdf.format(nowdate));
/* 當前日期月份-1 */
cal.add(Calendar.MONTH, -1);
// 得到前一個月的第一天
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.DAY_OF_MONTH));
System.out.println("上個月的第一天是:" + sdf.format(cal.getTime()));
// 得到前一個月的最後一天
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
System.out.println("上個月的最後一天是:" + sdf.format(cal.getTime()));
}
}
⑷ Java寫一個函數判斷一個日期是否在本月之內
首先你要new date() , 再獲取這個date 的月開始時間 ,和結束時間 ,然後 比較就可以了。
/**
* 獲得本月的開始時間,即2012-01-01 00:00:00
*
* @return
*/
public Date getCurrentMonthStartTime() {
Calendar c = Calendar.getInstance();
Date now = null;
try {
c.set(Calendar.DATE, 1);
now = shortSdf.parse(shortSdf.format(c.getTime()));
} catch (Exception e) {
e.printStackTrace();
}
return now;
}
/**
* 當前月的結束時間,即2012-01-31 23:59:59
*
* @return
*/
public Date getCurrentMonthEndTime() {
Calendar c = Calendar.getInstance();
Date now = null;
try {
c.set(Calendar.DATE, 1);
c.add(Calendar.MONTH, 1);
c.add(Calendar.DATE, -1);
now = longSdf.parse(shortSdf.format(c.getTime()) + " 23:59:59");
} catch (Exception e) {
e.printStackTrace();
}
return now;
}
這種代碼,你自己再完善下
⑸ 如何在java中得到本月的開始和結束時間(天)
比如今天是2009年3月24號,
那本月第一天就是: 今天的年 + 月 + 01
本月的最後一天就是:(本月第一天)加1月減1天
明白了?
日期的加減可以用類Calendar實現
本月的開始時間,就是年朋+01
結束時間,簡單一點就是下月1號減1天
⑹ java中如何計算本周開始和結束的日期
思路:首先是獲取該月的實際天數,然後從1號遍歷直至該月最後一天,利用Calendar類找出該日是一周中的第幾天,
(1)若該日是周日,則視為一周結束,並用該日期減去6找到該周的開始日期,若相減結果小於等於1,則說明該周起始日期應該是本月1號。
(1)若該日不是周日,且是該月最後一天,則應該在上面計算的基礎上再加一周,視月末為該周的結束日,該周起始日期應為改日期減去改日
在一周中的位置加2,例如:2013-09-30號是周一,則視為9月份中的第六周,開始日期是30-2+2
提示:Calendar 類中視周日為一周的開始,值是1
示例代碼:
[java] view plain
public static void printfWeeks(String date) throws Exception {
// String date = "2013-09";
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM");
Date date1 = dateFormat.parse(date);
Calendar calendar = new GregorianCalendar();
calendar.setTime(date1);
int days = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
System.out.println("days:" + days);
int count = 0;
for (int i = 1; i <= days; i++) {
DateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd");
Date date2 = dateFormat1.parse(date + "-" + i);
calendar.clear();
calendar.setTime(date2);
int k = new Integer(calendar.get(Calendar.DAY_OF_WEEK));
if (k == 1) {// 若當天是周日
count++;
System.out.println("-----------------------------------");
System.out.println("第" + count + "周");
if (i - 6 <= 1) {
System.out.println("本周開始日期:" + date + "-" + 1);
} else {
System.out.println("本周開始日期:" + date + "-" + (i - 6));
}
System.out.println("本周結束日期:" + date + "-" + i);
System.out.println("-----------------------------------");
}
if (k != 1 && i == days) {// 若是本月最好一天,且不是周日
count++;
System.out.println("-----------------------------------");
System.out.println("第" + count + "周");
System.out.println("本周開始日期:" + date + "-" + (i - k + 2));
System.out.println("本周結束日期:" + date + "-" + i);
System.out.println("-----------------------------------");
}
}
}
測試代碼:
[java] view plain
public static void main(String[] args) throws Exception {
String s = "2013-";
for (int i = 1; i <= 12; i++) {
System.out.println("*******************************************");
System.out.println("月份:" + i);
printfWeeks(s + i);
System.out.println("*******************************************");
}
// printfWeeks(s + 2);
}
⑺ 做個日期查詢,判斷開始日期與終止日期范圍必須在一個月之內,用java代碼
import java.text.DateFormat;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.SimpleFormatter;
public class DateTest {
/**
* 判斷是否在同一個月
* @ startDate yyyy-MM-dd
* @param endDate yyyy-MM-dd
* @return false:不在同一個月內,true在同一個月內
*/
public static boolean isMonth(String startDate,String endDate){
if(margin(startDate, endDate)>31){
return false;
}
int startMonth = Integer.parseInt(startDate.substring(5, 7));
int endMonth = Integer.parseInt(endDate.substring(5, 7));
if(startMonth==endMonth){
return true;
}else{
return false;
}
}
/**
* 計算開始日期和結束日期差
* @param startDate yyyy-MM-dd
* @param endDate yyyy-MM-dd
* @return
*/
private static int margin(String startDate,String endDate){
ParsePosition pos = new ParsePosition(0);
ParsePosition pos2 = new ParsePosition(0);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date ds = sdf.parse(startDate, pos);
Date de = sdf.parse(endDate, pos2);
long l = de.getTime()-ds.getTime();
int margin = (int)(l/24*60*60*1000);
return margin;
}
/**
* main方法測試
* @param args
*/
public static void main(String[] args) {
System.out.println(DateTest.isMonth("2014-10-17", "2014-10-25"));
System.out.println(DateTest.isMonth("2014-10-17", "2014-12-25"));
}
}