假设一个月结束日期是一个月中的日期,即该月中的最后一个非周末和非假日日期.如何在Joda时间找到最近一个月的结束日期?例如,今天的答案将是5月28日星期五,因为那是五月的月末,而五月是最近一个月的结束.
String febSt = "02/01/2014" ;
String febEnd = "02/28/2014" ;
Run Code Online (Sandbox Code Playgroud)
以上代码是我的输入我需要"03/01/2014"和"03/31/2014"作为输出.我尝试了更多代码并使用了日历功能,但没有结果.从这个程序我需要下个月的开始和结束日期.
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class MonthCalculation {
public void getNextMonth(String date) throws ParseException{
DateFormat format = new SimpleDateFormat("MM/dd/yyyy");
Date dt = format.parse(date);
Date begining, end;
{
Calendar calendar = getCalendarForNow(dt);
calendar.set(Calendar.DAY_OF_MONTH,calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
setTimeToEndofDay(calendar);
end = calendar.getTime();
SimpleDateFormat endDt = new SimpleDateFormat("MM/dd/yyyy");
String endStrDt = endDt.format(end);
if(date != null && date.equalsIgnoreCase(endStrDt)){
System.out.println("Ending of the month");
calendar.add(Calendar.DAY_OF_MONTH, 1);
Date lastDate = calendar.getTime();
SimpleDateFormat …Run Code Online (Sandbox Code Playgroud) 给定一年零一个月; 我想要两个Date Objects.一个startDate月份,一个end Date月份.我在这里实现了它,它的工作原理.但这看起来太冗长了,我想知道是否有一个简洁的解决方案;
例如,2014年3月,开始日期为3月1日,结束日期为3月31日(Date objects精确到毫秒)
public setDates(int month,int year) {
Calendar calendar = Calendar.getInstance();
// Use the calendar to get the startDate and endDate of this Invoice.
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.MONTH,month);
//set start date
calendar.set(Calendar.DAY_OF_MONTH,
calendar.getActualMinimum(Calendar.DAY_OF_MONTH));
calendar.set(Calendar.HOUR_OF_DAY,
calendar.getActualMinimum(Calendar.HOUR_OF_DAY));
calendar.set(Calendar.MINUTE,
calendar.getActualMinimum(Calendar.MINUTE));
calendar.set(Calendar.SECOND,
calendar.getActualMinimum(Calendar.SECOND));
calendar.set(Calendar.MILLISECOND,
calendar.getActualMinimum(Calendar.MILLISECOND));
this.startDate = calendar.getTime();
//endDate start date
calendar.set(Calendar.DAY_OF_MONTH,
calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
calendar.set(Calendar.HOUR_OF_DAY,
calendar.getActualMaximum(Calendar.HOUR_OF_DAY));
calendar.set(Calendar.MINUTE,
calendar.getActualMaximum(Calendar.MINUTE));
calendar.set(Calendar.SECOND,
calendar.getActualMaximum(Calendar.SECOND));
calendar.set(Calendar.MILLISECOND,
calendar.getActualMaximum(Calendar.MILLISECOND));
this.endDate = calendar.getTime();
}
Run Code Online (Sandbox Code Playgroud) 对于特定的月份和年份,我想使用 Java 中的 Joda 时间库获取 ISO 年的月份开始日期和结束日期。例如,我的月份为 3 月,年份为 2014 年,所以我想知道 ISO 年份中的 3 月的开始日期和结束日期。
除了 joda-time 库之外,还有其他方法可以得到同样的东西吗?