知道一个时间段,如何求出这个时间段的同期,上期时间段?
比如:2008-02-29到2009-07-16这个时间段的
上期时间是:2006-10-13到2008-02-28
同期时间是:2007-03-01到2008-07-16
知道一个时间段,如何求出这个时间段的同期,上期时间段?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答
- star00123 2009-07-21 18:40关注
我的回答,希望能帮助你...
[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]本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
- ¥30 截图中的mathematics程序转换成matlab
- ¥15 动力学代码报错,维度不匹配
- ¥15 Power query添加列问题
- ¥50 Kubernetes&Fission&Eleasticsearch
- ¥15 報錯:Person is not mapped,如何解決?
- ¥15 c++头文件不能识别CDialog
- ¥15 Excel发现不可读取的内容
- ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
- ¥20 yolov5自定义Prune报错,如何解决?