2016-03-08 71 views
0

我试图更新我的旧代码,但更新Time.getJulianDay时出现了一些问题。我试图使用GregorianCalendar,但我无法将其转换为int。 ¿有什么办法可以做到吗?替代Time.julianDay的问题

这是我的代码:

public void addDate(ExtendedCalendarView calendarView,String eventname,String description, String location) 
{ 
    try { 
     if(startYear==-1) 
      throw new Exception("No has indicado los valores de las horas"); 

     cal.set(startYear, startMonth - 1, startDay, startHour, startMinute); 
     long time = cal.getTimeInMillis(); 

     ContentValues values = new ContentValues(); 
     values.put(CalendarProvider.COLOR, Event.COLOR_RED); 
     values.put(CalendarProvider.DESCRIPTION, description); 
     values.put(CalendarProvider.LOCATION, location); 
     values.put(CalendarProvider.EVENT, eventname); 
     values.put(CalendarProvider.START, time); 
     values.put(CalendarProvider.START_DAY, getJulianDay(time)); 

     cal.set(stopYear, stopMonth - 1, stopDay, stopHour, stopMinute); 
     time = cal.getTimeInMillis(); 
     values.put(CalendarProvider.END, time); 
     values.put(CalendarProvider.END_DAY, getJulianDay(time)); 

     context.getContentResolver().insert(CalendarProvider.CONTENT_URI, values); 

     restartTime(); 
     calendarView.refreshCalendar(); 

    } 
    catch (Exception ex) 
    { 
     Log.d("asd", "ERROR;"+ex.getMessage()); 
    } 

} 

private int getJulianDay(long time) 
{ 
    GregorianCalendar date=(GregorianCalendar) GregorianCalendar.getInstance(TimeZone.getTimeZone("UTC")); 
    date.setTime(new Date(time)); 
    date.set(Calendar.HOUR_OF_DAY, 0); 
    date.set(Calendar.MINUTE,0); 
    date.set(Calendar.SECOND, 0); 
    date.set(Calendar.MILLISECOND,0); 


    //return Time.getJulianDay(time, TimeUnit.MILLISECONDS.toSeconds(timeZone.getOffset(time))); 
} 

感谢

回答

0

你有没有考虑使用JodaTime库在你的应用程序?它将使Android上的日期/时间更容易工作。辅助函数toJulianDay()和JulianDayNumber()对于你正在做的事情来说是完美的。这些方法分别返回double和long,如果绝对需要,你可以将结果转换或转换为int(但你将失去一些精度)。

toJulianDay(long)方法根据天数从中午开始计算天文学儒略日。此方法计算日期从午夜开始的变体。 JDN 0用于相当于公元前4713年1月1日(朱利安)的日期。因此,这些日子在小朱利安日之前12个小时开始。

Here is the full documentation for more details.link to the JodaTime project

+0

它的作品谢谢! –