package tr.com.stackdeveloper.lib;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import android.annotation.SuppressLint;
import android.net.ParseException;
import android.util.Log;
public class DateHelper {
/**
* G�n�n index'inde g�n�n ismini d�nd�r�r.
* 1 = Pazartesi
* 2 = Sal�
* .
* .
* .
* @param dayIndex
* @return
*/
@SuppressLint("UseSparseArrays")
public static String getDateName(int dayIndex)
{
HashMap<Integer, String> dateMap = new HashMap<Integer, String>();
dateMap.put(Calendar.SUNDAY, Constant.PAZAR);
dateMap.put(Calendar.MONDAY, Constant.PAZARTESI);
dateMap.put(Calendar.TUESDAY, Constant.SALI);
dateMap.put(Calendar.WEDNESDAY, Constant.CARSAMBA);
dateMap.put(Calendar.THURSDAY, Constant.PERSEMBE);
dateMap.put(Calendar.FRIDAY, Constant.CUMA);
dateMap.put(Calendar.SATURDAY, Constant.CUMARTESI);
return dateMap.get(dayIndex);
}
/**
* ��inde bulundu�umuz haftan�n pazartesi g�n�n�n tarihi verir.
* @return
*/
public static Date getDateOfMonday()
{
Calendar cal = Calendar.getInstance();
while(cal.get(Calendar.DAY_OF_WEEK)!=Calendar.MONDAY){
cal.add(Calendar.DAY_OF_MONTH, -1);
}
Date tarih = new Date(cal.getTimeInMillis());
return tarih;
}
/**
* ��inde bulundu�umuz haftan�n cuma g�n�n tarihi d�nd�r�r.
* @return
*/
public static Date getDateOfFriday()
{
Date d = getDateOfMonday();
d.setDate(d.getDate()+4);
return d;
}
/**
* Tarihin g�n olarak kar��l���n� d�nd�r�r.
* @param date
* @return
*/
public static String getDateName(Date date)
{
Calendar c = Calendar.getInstance();
c.setTime(date);
int dayIndex = c.get(Calendar.DAY_OF_WEEK);
return getDateName(dayIndex);
}
/**
* G�n�n tarihini d�nd�r�.
* @return
*/
@SuppressLint("SimpleDateFormat")
public static String getCurrentDate() {
Calendar c = Calendar.getInstance();
SimpleDateFormat df = new SimpleDateFormat("dd.MM.yyyy");
String formattedDate = df.format(c.getTime());
return formattedDate;
}
/**
* String tipteki tarih parametresini Date tipine d�nd�r�r.
* @param date dd.MM.yyyy format�nda olmal�
* @return
*/
@SuppressLint("SimpleDateFormat")
public static Date stringToDate(String date) {
SimpleDateFormat format = new SimpleDateFormat("dd.MM.yyyy");
try {
Date pDate = format.parse(date);
return pDate;
} catch (ParseException e) {
Log.d("stringToDate", "stringToDate parselenemedi");
} catch (java.text.ParseException e) {
Log.d("stringToDate", "stringToDate parselenemedi2");
}
return null;
}
/**
* G�n,Ay,Y�l parametresinden dd.MM.yyyy format�nda tarih d�nd�r�r.
* @param sDay G�n
* @param sMonth Ay
* @param sYear Y�l
* @return
*/
public static String getDateFrom(int sDay,int sMonth,int sYear){
// ay s�f�r tabanl� oldu�u i�in 1 ekle...
StringBuilder sb = new StringBuilder();
String formattedDay= sDay < 10 ? "0"+Integer.toString(sDay):Integer.toString(sDay);
String formattedMonth= sMonth < 10 ? "0"+Integer.toString(sMonth+1):Integer.toString(sMonth+1);
String selectedDate=sb.append(formattedDay).append(".").append(formattedMonth).append(".").append(sYear).toString();
return selectedDate;
}
/**
* Date tipindeki parametreyi,dd.MM.yyyy String olarak d�nd�r�r.
* @param date tarih
* @return
*/
@SuppressLint("SimpleDateFormat")
public static String dateToString(Date date) {
SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy");
try {
String stringDate = dateFormat.format(date);
return stringDate;
} catch (ParseException e) {
Log.d("stringToDate", "stringToDate parselenemedi");
}
return null;
}
/**
* Tarihe belirtilen g�n kadar ekler.
* @param date tarih
* @param incValue tarihe g�n olarak eklenecek de�er
* @return
*/
@SuppressLint("SimpleDateFormat")
public static Date dateInc(String date,int incValue) {
SimpleDateFormat format = new SimpleDateFormat("dd.MM.yyyy");
try {
Date pDate = format.parse(date);
pDate.setDate(pDate.getDate()+incValue);
return pDate;
} catch (ParseException e) {
Log.d("stringToDate", "stringToDate parselenemedi");
} catch (java.text.ParseException e) {
Log.d("stringToDate", "stringToDate parselenemedi2");
}
return null;
}
/**
* date parametresi ile belirtilen tarihe,decValue de�eri kadar ekler.
* @param date
* @param decValue
* @return
*/
@SuppressLint("SimpleDateFormat")
public static Date dateDec(String date,int decValue) {
SimpleDateFormat format = new SimpleDateFormat("dd.MM.yyyy");
try {
Date pDate = format.parse(date);
pDate.setDate(pDate.getDate()-decValue);
return pDate;
} catch (ParseException e) {
Log.d("stringToDate", "stringToDate parselenemedi");
} catch (java.text.ParseException e) {
Log.d("stringToDate", "stringToDate parselenemedi2");
}
return null;
}
/**
* dd.MM.yyyy format�ndaki tarihin g�n olarak kar��l���n� bulur
* @param date
* @return
*/
public static String getDateName(String date)
{
Date cDate = stringToDate(date);
return getDateName(cDate);
}
/**
* �ki Saat aras�ndaki fark�,saat cinsinden hesaplar.
* Kullan�m : DateHelper.hourSpan("08:00", "12:00");
* @param startTime ba�lang�� saati
* @param finishTime biti� saati
* @return
*/
@SuppressLint("SimpleDateFormat")
public static double hourSpan(String startTime,String finishTime)
{
SimpleDateFormat parser = new SimpleDateFormat("HH:mm");
double fark = 0;
double saat = 0;
try
{
Date dStart = parser.parse(startTime);
Date dFinish = parser.parse(finishTime);
fark = dFinish.getTime() - dStart.getTime();
saat = fark / (1000 * 60 * 60);
} catch (java.text.ParseException e)
{
saat = 0;
}
return saat;
}
}