簡體   English   中英

如何在Android程序中添加時間段?

[英]How to add time period in Android program?

我正在為Android寫一個應用程序,需要在程序中添加“睡眠時間”。 我不知道該怎么實現。 我的程序有服務,必須在某些時間段(例如22:00-7:00)關閉服務。 咨詢是否有針對此類問題的現成解決方案? 我感興趣的是如何設置這個時間段,謝謝。 對不起我的英語不好。

您可以嘗試將其添加以獲取當前日期和時間:

String str = DateFormat.getDateTimeInstance().format(new Date());

之后,您可以檢查時間是否在所需范圍內。

public static final String myformat = "HH:mm";

private Date date;
private Date time1;
private Date time2;

private String range1 = "10:00";
private String range2 = "07:00";

SimpleDateFormat str = new SimpleDateFormat(myformat, Locale.US);

private void checkRange(){
    Calendar now = Calendar.getInstance();

    int hour = now.get(Calendar.HOUR);
    int minute = now.get(Calendar.MINUTE);

    date = parseDate(hour + ":" + minute);
    time1= parseDate(range1);
    tim2= parseDate(range2);

    if ( time1.before( date ) && time2.after(date)) {
        //code
    }
}

最終使用JodaTime編寫了以下函數:

SharedPreferences sp = context.getSharedPreferences(Constants.SP_SETTINGS,Context.MODE_PRIVATE);
    String start = sp.getString(Constants.PARAM_SLEEP_MODE_START,null);
    String end = sp.getString(Constants.PARAM_SLEEP_MODE_END,null);
    if (start==null || end ==null) return null;
    DateTime now = new DateTime(new Date());
    Days days = Days.daysBetween(new DateTime(new Date(0)).toLocalDate(),now.toLocalDate());
    DateTimeFormatter formatter = DateTimeFormat.forPattern("HH:mm");
    DateTime begin = formatter.parseDateTime(start).plusDays(days.getDays());
    DateTime finish = formatter.parseDateTime(end).plusDays(days.getDays());
    if (begin.isAfter(finish)) {
        if (now.isBefore(finish)) begin = begin.minusDays(1);
        else  finish = finish.plusDays(1);
    } else {
        if (now.isAfter(finish)) {
            begin = begin.plusDays(1);
            finish = finish.plusDays(1);
        }
    }
    Interval interval = new Interval(begin,finish);
    return interval.contains(now);

它很好地定義了我想要的東西。 謝謝大家=)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM