社区
Java SE
帖子详情
又是关于日期的问题
lianyangshiyan
2009-07-23 10:40:16
就是有这样一个文件,它里面的日期是这样的(一年之中,没有跨年的日期)
8月5日
6月7日-9月10日
3月14日
8月1日-8月23日
......
要求将文件中的重复日期去掉,并讲日期顺序排列,并打印出来,计算出最早的日期和最晚的日期相差多少天?
...全文
140
6
打赏
收藏
又是关于日期的问题
就是有这样一个文件,它里面的日期是这样的(一年之中,没有跨年的日期) 8月5日 6月7日-9月10日 3月14日 8月1日-8月23日 ...... 要求将文件中的重复日期去掉,并讲日期顺序排列,并打印出来,计算出最早的日期和最晚的日期相差多少天?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xingqiliudehuanghun
2009-07-23
打赏
举报
回复
简单,但要吃饭了,先mark
hey2009
2009-07-23
打赏
举报
回复
import java.io.BufferedReader;
import java.io.FileReader;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Collections;
import java.util.Date;
import java.util.LinkedList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TT {
private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
private static LinkedList<Date> dates = new LinkedList<Date>();
public static void main(String[] args) throws Exception {
//获取时间
BufferedReader bReader = new BufferedReader(new FileReader("c:\\tt.txt"));
String string = bReader.readLine().trim();
while(string!=null&&!"".equals(string)){
Pattern pattern = Pattern.compile("\\d{1,2}月\\d{1,2}日");
Matcher matcher = pattern.matcher(string);
while(matcher.find()){
String ss = matcher.group();
String month = ss.substring(0,ss.indexOf("月"));
String dd = ss.substring(ss.indexOf("月")+1,ss.indexOf("日"));
Date dt1 = sdf.parse("2008"+"-"+month+"-"+dd);
if(!dates.contains(dt1)){
dates.add(dt1);
}
}
string = bReader.readLine();
}
bReader.close();
//排序
Collections.sort(dates);
for(Date date: dates){
Calendar cal = Calendar.getInstance();
cal.setTime(date);
System.out.println((cal.get(Calendar.MONTH)+1)+"月"+cal.get(Calendar.DATE)+"日");
}
//输出最大相差天数
System.out.println(getDoubleMargin(dates.getLast(),dates.getFirst()));;
}
/**
* 获取相差天数
* @return
*/
public static double getDoubleMargin(Date date1, Date date2) {
double margin;
try {
long l = date1.getTime() - date2.getTime();
margin = (l / (24 * 60 * 60 * 1000.00));
return margin;
} catch (Exception e) {
return 0;
}
}
}
tt.txt中的数据:
8月5日
6月7日-9月10日
3月14日
8月1日-8月23日
8月24日-8月23日
8月1日
运行结果:
3月14日
6月7日
8月1日
8月5日
8月23日
8月24日
9月10日
180.0
lianyangshiyan
2009-07-23
打赏
举报
回复
不是的~~比如8月5号和8月1号-8月5号~~这两个8月5号是重复的
justinavril
2009-07-23
打赏
举报
回复
楼主,我不明白你的意思。比如8月5号,是不是和8月1号-8月23号重复啊?所以应该去掉?
lianyangshiyan
2009-07-23
打赏
举报
回复
Pattern和Matcher没用过~~~
lianyangshiyan
2009-07-23
打赏
举报
回复
3Q3Q
【
日期
问题
专题】&【蓝桥杯备考训练】:
日期
差值、
日期
问题
、回文
日期
、特殊的回文
日期
、
日期
计算【已更新完成】
该博客围绕
日期
相关
问题
展开,涵盖
日期
差值、
日期
问题
、回文
日期
等。涉及上海交通大学考研机试题、蓝桥杯省赛题等。介绍了各题的输入输出格式、数据范围,给出解题思路,如用统一模板计算
日期
差值,从起始
日期
枚举判断
日期
合法性等,还附上对应代码。
关于
日期
问题
的总结
本文通过多个实例探讨了
日期
问题
的解决方法,包括
日期
格式转换、
日期
排序、特定
日期
计算等,并提供了详细的代码实现。
日期
问题
总结
博客介绍了解决
日期
问题
的方法,先写模板再具体分析,考试中
日期
问题
多为模拟和枚举,数据量不大可直接暴力求解。还给出多个
日期
问题
例题,如
日期
差值、回文
日期
、
日期
计算等,包含输入输出格式、数据范围及样例。
日期
问题
文章介绍了
日期
处理中的常见
问题
,包括
日期
合法性判断,月份对应天数的计算,
日期
加减运算,以及如何确定
日期
是星期几。同时,提供了闰年的判断函数和蔡基姆拉尔森计算公式。此外,还讨论了在给定
日期
范围内可能存在多种
日期
形式的
问题
,以及寻找下一个回文
日期
和特定模式回文
日期
的方法。
日期
类
问题
本文深入探讨了
日期
类
问题
的算法解决方案,包括如何计算两个
日期
之间的天数差,闰年的判断规则及其应用,以及通过将
日期
转换为整型来简化
问题
的方法。文章还提供了一个完整的示例代码,演示了如何计算特定
日期
对应的星期几。
Java SE
62,621
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章