知道一个时间段,如何求出这个时间段的同期,上期时间段?

知道一个时间段,如何求出这个时间段的同期,上期时间段?
比如:2008-02-29到2009-07-16这个时间段的
上期时间是:2006-10-13到2008-02-28
同期时间是:2007-03-01到2008-07-16

3个回答

我的回答,希望能帮助你...
[code="java"]
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;

public class TimeTest {
public static void main(String[] args) {

//日期格式化格式 yyyy-MM-dd
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//已知时间段
GregorianCalendar day1 = new GregorianCalendar(2008,1,29);
GregorianCalendar day2 = new GregorianCalendar(2009,6,16);
//输出
System.out.print("已知时间段为: ");
System.out.println(sdf.format(day1.getTime())+" 至 "+sdf.format(day2.getTime()));
//得到已知时间段内的天数
long temp = day2.getTimeInMillis()-day1.getTimeInMillis();
long days = temp/(1000*60*60*24);
int day = Integer.parseInt(String.valueOf(days));
//获取上期结束时间
GregorianCalendar day3 = (GregorianCalendar)day1.clone();
day3.add(Calendar.DAY_OF_MONTH, -1);
//获取上期开始时间
GregorianCalendar day4 = (GregorianCalendar)day3.clone();
day4.add(Calendar.DAY_OF_MONTH, -day);
//输出
System.out.print("上期时间段为: ");
System.out.println(sdf.format(day4.getTime())+" 至 "+sdf.format(day3.getTime()));

//获取同期结束时间
GregorianCalendar day5 = (GregorianCalendar)day2.clone();
day5.add(Calendar.YEAR, -1);
//获取同期开始时间
GregorianCalendar day6 = (GregorianCalendar)day5.clone();
day6.add(Calendar.DAY_OF_MONTH, -day);
//输出
System.out.print("同期时间段为: ");
System.out.print(sdf.format(day6.getTime())+" 至 ");
System.out.println(sdf.format(day5.getTime()));
}
}
[/code]
输出结果为:
[code="java"]
已知时间段为: 2008-02-29 至 2009-07-16
上期时间段为: 2006-10-13 至 2008-02-28
同期时间段为: 2007-03-01 至 2008-07-16
[/code]

没明白LZ的同期,上期是怎么个定义规则? 相同的天数 还是怎么的呢? 请LZ补充!

你所谓的上期时间段和同期时间段是由什么规则来定的

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!