2016-10-02 93 views
0

我想要获取某周特定日期的日期,以周数标识。如何获得特定一周中特定日期的日期

下面是一个例子:

今天是星期一(2016年10月3日),它是在本周58 现在我想要得到的例如日期数本周五。

我在我的android应用程序中使用Joda-Time。

目前Iam正在创建LocalDate。

// This is the date of today 
private LocalDate reportDate = new LocalDate(); 

// The number of the week is calculated here 
int week = Weeks.weeksBetween(startDate.dayOfWeek().withMinimumValue().minusDays(1), 
     reportDate.dayOfWeek().withMaximumValue().plusDays(1)).getWeeks(); 

switch(day_of_week) { 
    case "Monday": 
     // Get date of this day in current week 
     break; 
    case "Tuesday": 
     // Get date of this day in current week 
     break; 
    // ... 
+0

我不清楚周数是如何影响计算的。如果报告日期是10月3日,而星期几是星期二,则大概答案将是10月4日,而不管周数是多少?你是否也在意在本周的第一天不是星期一? –

回答

1

您可以使用下面的代码作为期望实现的日子里,

LocalDateTime yourDate = LocalDateTime.now(); 
    System.out.println(yourDate.getWeekOfWeekyear()); 
    int weekOfyear = yourDate.getWeekOfWeekyear(); 
    //Fetch Week Start Date for Given Week Number 
    DateTime weekStartDate = new DateTime().withWeekOfWeekyear(weekOfyear); 
    System.out.println(weekStartDate.toString()); 
    //Fetch Specific Days for given week 
    DateTime wedDateTime = weekStartDate.withDayOfWeek(DateTimeConstants.WEDNESDAY); 

我希望这回答您的查询。

1

按我的客户要求我已经实现下面的代码,只是检查,如果它可以帮助你理解,

首先导入日历套餐如下

import java.util.Calendar; 

立即创建以下功能

public String getSpecificDate(int weekOfYear, int dayOfWeek) 
{  

    Calendar cal = Calendar.getInstance(); 

    cal.set(Calendar.WEEK_OF_YEAR, weekOfYear); 
    cal.set(Calendar.DAY_OF_WEEK, dayOfWeek); 

    int year = cal.get(Calendar.YEAR); 
    int month = cal.get(Calendar.MONTH);  // 0 to 11 
    int day = cal.get(Calendar.DAY_OF_MONTH); 

    String selectedDate = " " + day + "-" + (month+1) + "-" + year; 
    return selectedDate; 
} 

// I have passed getSpecificDate(41, 6) and get 7-10-2016 as output