java设计一个方法返回今天距离过去的某一天已经过去了多少天

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java设计一个方法返回今天距离过去的某一天已经过去了多少天相关的知识,希望对你有一定的参考价值。

从键盘读入一个日期,计算今天到这个日期的天数,不是给定天数

import java.text.SimpleDateFormat;
import java.util.Date;

public class Test1
public static void main(String[] args)
try
System.out.print(dayDist("2013-3-1"));
catch (Exception ex)



public static int dayDist(String dateStr) throws Exception
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
Date date=df.parse(dateStr);
long timeMillion=new Date().getTime()-date.getTime();
return (int)(timeMillion/(24l*60*60*1000));

追问

从键盘读入一个日期,计算今天到这个日期的天数,不是给定天数

追答

从键盘读入一个日期的字符串是吗?

追问

是的,日期格式是yyyy-MM-dd

追答

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Test1
public static void main(String[] args) throws IOException
BufferedReader strin=new BufferedReader(new InputStreamReader(System.in));
while(true)
System.out.println("请输入yyyy-MM-dd格式的字符串日期,输入0退出:");
String inS=strin.readLine();
if(inS.equals("0"))
System.exit(0);

try
System.out.println("距离今天:"+dayDist(inS)+"天");
catch(ParseException x)
System.err.println("日期格式错误");




public static int dayDist(String dateStr) throws ParseException
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
Date date=df.parse(dateStr);
long timeMillion=new Date().getTime()-date.getTime();
return (int)(timeMillion/(24l*60*60*1000));

参考技术A SimpleDateFormat ft = new SimpleDateFormat("yyyy/MM/dd");

String time1=“2013-03-05”,
String time2=“2013-03-01”
Date date1 = ft.parse( time1 );
Date date2 = ft.parse( time2 );
int day = (date1.getTime() - date2.getTime()) / 1000 / 60 / 60 / 24;

java如何实现在下个月的某一天自动获取某数据

我要在下个月1号,自动获取某个数据!希望不要自己手动点击触发。就是1号,某个框框的数据全部都自动添加了,并且存储在数据中了!
还有,如何才知道,今天是下个月1号???

参考技术A 最简单的办法,就是用java写填内容,取数据等处理,然后封装成jar,再编写个bat文件,调用这个jar。
最后,在系统的计划任务里把这个bat加入计划任务。
参考技术B 利用java.util.Timer实现
主业务中:
Timer timer = new Timer();
timer.schedule(new MyTask(), Date);

另外写个类继承TimerTask,实现RUN方法,schedule启动后,一旦满足条件则调用此RUN方法
class MyTask extends TimerTask
public void run()
//do your work



schedule有很多重载方法,你可以查下追问

你这个好像要运行这个类,才会走你的方法!也就是要去触发!

追答

没明白你什么意思,什么叫运行这个类,schedule运行也是要依附在某个进程上的,比如web application启动时开始schedule,桌面APP启动时开启后台schedule,你总不可能什么都没有就突然冒出个进程开始跑程序,无中生有的事java干不了,其他语言也干不了

本回答被提问者采纳
参考技术C spring的定时器可以在特定的时间触发,触发后你可以做一个insert操作,但是数据的获取,你自己想了追问

没有spring,单纯java代码

参考技术D 写一个线程,间隔性的获取当前时间,当这个时间是下个月1号的时候,那么就做你想做的那个操作。 第5个回答  2014-01-02 得先说你是什么程序,WEB还是桌面应用?数据来源是数据库还是网络抓取或者运算得出?

以上是关于java设计一个方法返回今天距离过去的某一天已经过去了多少天的主要内容,如果未能解决你的问题,请参考以下文章

java如何实现在下个月的某一天自动获取某数据

java获取过去一天,过去一月,过去一年的日期,以及截至今天过去某一段时间的时间集

java 线程 设置每周的某一天的某个时间执行一次,用哪个方法。SchedulerTask

java万年历

求出今天距离某一天过了多少时间

JavaScript Date对象方法详细总结