1028 人口普查 (20分)
ms=date1.getTime()-date2.getTime();
s=ms/1000; (date1.getTime()-date2.getTime())/(1000);
min=s/60; (date1.getTime()-date2.getTime())/(1000*60);
hour=min/60; (date1.getTime()-date2.getTime())/(1000*60*60);
day=hour/24; (date1.getTime()-date2.getTime())/(1000*60*60*24);
year=day/365;//这是错的
如果要计算相差年份可以将其转为字符串,判断相差年份是否超过n年
bug代码:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
public class Main {
public static void main(String[] args) throws ParseException, IOException {
BufferedReader sc = new BufferedReader(new InputStreamReader(System.in));
SimpleDateFormat sdf=new SimpleDateFormat("yyyy/mm/dd");
// long l = (sdf.parse("2014/09/06").getTime() - sdf.parse("1814/09/06").getTime()) / (1000 * 3600 * 24);
// System.out.println("相差天数:"+l);
// String nowStr="2014/09/06";
// String beforeStr="2014/09/16";
// long l = (sdf.parse(beforeStr).getTime() - sdf.parse(nowStr).getTime()) / (1000 * 3600 * 24);
// System.out.println(l);
String nowStr="2014/09/06";
Date now=sdf.parse(nowStr);
int cnt=0;
Map<Date,String> map= new TreeMap<>();
int n=Integer.parseInt(sc.readLine());
for(int i=0;i<n;i++){
String []s=sc.readLine().split(" ");
String value=s[0];
String key=s[1];
// System.out.println(key);
String []str=key.split("/");
if(Integer.parseInt(str[0])>2014){
continue;
}
//1000 * 24 * 60 * 60
// long time=now.getTime()-sdf.parse(key).getTime();//ms
// if((time/ (1000*3600*24)>365*200)){
// System.out.println("相差天数: "+time/ (1000*3600*24));
// continue;
// }
if(Integer.parseInt(str[0])<1814){
continue;
}
if(Integer.parseInt(str[0])==1814){
if(Integer.parseInt(str[1])<9){
continue;
}
if(Integer.parseInt(str[1])==9){
if(Integer.parseInt(str[2])<6){
continue;
}
}
}
map.put(sdf.parse(key),value);
cnt++;
}
if(map.size()==0){
System.out.println("0");return;
}
int num=0;
System.out.print(cnt+" ");
for(Map.Entry<Date,String> m:map.entrySet()){
Date key=m.getKey();
String value=m.getValue();
num++;
if(num==1){
System.out.print(value+" ");
}
if(num==cnt){
System.out.println(value);
// return;
}
//System.out.println(sdf.format(key)+" :"+value);
}
}
}
两个测试点没过:
//打印沙漏
//an=2n-1;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
public class Main {
public static void main(String[] args) throws ParseException, IOException {
BufferedReader sc = new BufferedReader(new InputStreamReader(System.in));
SimpleDateFormat sdf=new SimpleDateFormat("yyyy/mm/dd");
String nowStr="2014/09/06";
Date now=sdf.parse(nowStr);
int cnt=0;
Map<Date,String> map= new TreeMap<>();
int n=Integer.parseInt(sc.readLine());
for(int i=0;i<n;i++){
String []s=sc.readLine().split(" ");
String value=s[0];
String key=s[1];
String []str=key.split("/");
//年份比现在还晚
if(Integer.parseInt(str[0])>2014){
continue;
}
if(Integer.parseInt(str[0])==2014){
if(Integer.parseInt(str[1])>9){
continue;
}
if(Integer.parseInt(str[1])==9){
if(Integer.parseInt(str[2])>6){
continue;
}
}
}
//年龄相差大于200
if(Integer.parseInt(str[0])<1814){
continue;
}
if(Integer.parseInt(str[0])==1814){
if(Integer.parseInt(str[1])<9){
continue;
}
if(Integer.parseInt(str[1])==9){
if(Integer.parseInt(str[2])<6){
continue;
}
}
}
map.put(sdf.parse(key),value);
cnt++;
}
if(map.size()==0){
System.out.println("0");return;
}
int num=0;
System.out.print(cnt+" ");
for(Map.Entry<Date,String> m:map.entrySet()){
Date key=m.getKey();
String value=m.getValue();
num++;
if(num==1){
System.out.print(value+" ");
}
if(num==cnt){
System.out.println(value);
}
}
}
}
判断年龄是否合法的代码其实可以很简化:
if(key.compareTo("2014/09/06")>0||key.compareTo("1814/09/06")<0){
continue;
}
一个测试点没过:
不一样的烟火
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· Windows桌面应用自动更新解决方案SharpUpdater5发布
· 我的家庭实验室服务器集群硬件清单
· C# 13 中的新增功能实操
· Supergateway:MCP服务器的远程调试与集成工具
· Vue3封装支持Base64导出的电子签名组件