0

特定の期間の週(どの日付から日付まで)を取得するための簡単なライブラリまたはアプローチはありますか?

例:あります6 weeks(variable)(2012年7月1日から2012年8月11日まで)。

6週間を切り落としたいです2 portions (variable)。したがって、結果は次のようになります

1) 1 July,2012 ~ 21 July, 2012

2) 22 July,2012 ~ 11 Aug, 2012... etc

jodatimeを使用すると、特定の期間の間の週数を簡単に取得できます。

私が知っているのはStart Date and End Date、どちらが変数であるcutoffweeks amountか(たとえば、6週間または4週間)だけです。

4

2 に答える 2

1
final LocalDate start = new LocalDate();
final LocalDate end3 = start.plusWeeks(3)

何が欲しいのか正確にはわかりませんが、Joda-Timeを使用するとほとんどのことが簡単になります。

私はあなたが次のようなものが必要だと思います:

public void doStruff(int cutOff){
  int portion = cutoff/2;
  final LocalDate start = new LocalDate();
  final LocalDate end = start.plusWeeks(portion)
}
于 2012-06-29T09:40:56.397 に答える
0

このコードを試すことができます:

import java.text.DateFormat;
import java.text.ParseException;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.TimeZone;
    public class DateDiff {  
       public static void main(String[] args) {  
         String s1 = "06/01/2012";
         String s2 = "06/24/2012";
          DateDiff dd = new DateDiff();  
          Date then = null, now = null;  
          DateFormat df = DateFormat.getInstance();  
          df.setTimeZone( TimeZone.getDefault() );  

             try {  
                then = df.parse( s1 + " 12:00 PM" );  
                now = df.parse( s2 + " 12:00 PM" );  
             } catch ( ParseException e ) {  
                System.out.println("Couldn't parse date: " + e );  
                System.exit(1);  
             } 
          long diff = dd.getDateDiff( now, then, Calendar.WEEK_OF_YEAR );  
          System.out.println("No of weeks: " + diff );  
       }  

       long getDateDiff( Date d1, Date d2, int calUnit ) {  
          if( d1.after(d2) ) {    // make sure d1 < d2, else swap them  
             Date temp = d1;  
             d1 = d2;  
             d2 = temp;  
          }  
          GregorianCalendar c1 = new GregorianCalendar();  
          c1.setTime(d1);  
          GregorianCalendar c2 = new GregorianCalendar();  
          c2.setTime(d2);  
          for( long i=1; ; i++ ) {           
             c1.add( calUnit, 1 );   // add one day, week, year, etc.  
             if( c1.after(c2) )  
                return i-1;  
          }  
       }  
    }  
于 2012-06-29T09:35:59.560 に答える