View Full Version : فاصله زمانی بین دو تاریخ
  
dc-master
یک شنبه 25 اسفند 1392, 16:33 عصر
سلام چطوری میشه فاصله دو زمان رو محاسبه کرد؟
 مثلا از 2014/2/16 تا 2014/5/23 چند روزه؟
smemamian
یک شنبه 25 اسفند 1392, 17:38 عصر
تابع های دیگه ای هم داره، مثلاً برای دریافت ساعت 
تابع getHours() فراخوانی کن:
Date timeone = new Date();
Date timetwo = new Date();
long gettime = (timetwo.getSeconds()) - (timeone.getSeconds()) ;
dc-master
دوشنبه 26 اسفند 1392, 09:06 صبح
تابع های دیگه ای هم داره، مثلاً برای دریافت ساعت 
تابع getHours() فراخوانی کن:
Date timeone = new Date();
Date timetwo = new Date();
long gettime = (timetwo.getSeconds()) - (timeone.getSeconds()) ;
خوب این برای ثانیه،ساعت،ماه خوب کار میده ولی برای تاریخ کار نمیده
من می خوام فاصله مثلا 2014/2/17 تا 2014/6/26 رو بدست بیارم
		int year1 = 2014;		int month1 = 6;
		int day1 = 26;
		Date timeone = new Date(year1,month1,day1);
		Date timetwo = new Date();
		long getdate = (timetwo.getDate()) - (timeone.getDate());
micro24
دوشنبه 26 اسفند 1392, 09:24 صبح
با سلام
لینک زیر را مشاهده نمائید
http://www.mkyong.com/java/how-to-calculate-date-time-difference-in-java/
dc-master
دوشنبه 26 اسفند 1392, 09:47 صبح
درس شد
ممنون
public String fill2(int value)
	{
	    String erg = String.valueOf(value);
	    if (erg.length() < 2)
	        erg = "0" + erg;            
	    return erg;
	}
	public String get_duration(Date date1, Date date2)
	{                   
	    TimeUnit timeUnit = TimeUnit.SECONDS;
	    long diffInMillies = date2.getTime() - date1.getTime();
	    long s = timeUnit.convert(diffInMillies, TimeUnit.MILLISECONDS);
	    long days = s / (24 * 60 * 60);
	    long rest = s - (days * 24 * 60 * 60);
	    long std =  rest / (60 * 60);
	    long rest1 = rest - (std * 60 * 60);
	    long min = rest1 / 60;      
	    long sec = s % 60;
	    String dates = "";
	    if (days > 0)
	        dates += days + " Days ";
	    dates += fill2((int) std) + "h ";
	    dates += fill2((int) min) + "m ";
	    dates += fill2((int) sec) + "s ";
	    return dates;
	}
ashkan_gorg
دوشنبه 26 اسفند 1392, 10:26 صبح
میشه یه مثال کوچولو هم براش بزارید واسه من که زیاد بلد نیستم مرسی
dc-master
دوشنبه 26 اسفند 1392, 21:05 عصر
int year1 = 114;		int month1 = 5;
		int day1 = 27;
		@SuppressWarnings("deprecation")
		Date date2 = new Date(year1,month1,day1);
		Date date1 = new Date();
	String get=get_duration(date1, date2);	
	txt.setText(get);
	
			
	public String fill2(int value)
	{
	    String erg = String.valueOf(value);
	    if (erg.length() < 2)
	        erg = "0" + erg;            
	    return erg;
	}
	public String get_duration(Date date1, Date date2)
	{                   
	    TimeUnit timeUnit = TimeUnit.SECONDS;
	    long diffInMillies = date2.getTime() - date1.getTime();
	    long s = timeUnit.convert(diffInMillies, TimeUnit.MILLISECONDS);
	    long days = s / (24 * 60 * 60);
	    long rest = s - (days * 24 * 60 * 60);
	    long std =  rest / (60 * 60);
	    long rest1 = rest - (std * 60 * 60);
	    long min = rest1 / 60;      
	    long sec = s % 60;
	    String dates = "";
	    if (days > 0)
	        dates += days + " روز ";
	    dates += fill2((int) std) + "ساعت";
	    dates += fill2((int) min) + "دقیقه ";
	    dates += fill2((int) sec) + "ثانیه ";
	    return dates;
	}
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.