0

実際に私の Java プログラムでは、ユーザーがex:2012-12-01Start Dateend Date2012-12-30 を指定し、開始日と終了日の間の日付に結果を戻すことができます。

毎日したい場合は、次のコードを使用して与えることができます...

List<Date> dates = new ArrayList<Date>();
     DateFormat formatter = new SimpleDateFormat("yyyy-mm-dd");
    String str_date ="2012-12-03";
    String end_date ="2012-12-06";
    Date startDate = (Date) formatter.parse(str_date);
    Date endDate = (Date) formatter.parse(end_date);

    Calendar cal = Calendar.getInstance();
    Calendar cal1 = Calendar.getInstance();
    cal.setTime(startDate);
    cal1.setTime(endDate);
    int i=0; // use this for alternative date print
    while (!cal.equals(cal1)) {

        cal.add(Calendar.DATE, 1);
             System.out.println(cal.getTime()); 

        }

しかし、問題は、ユーザーがMonday,sunday開始日と終了日に日付のみを必要とする場合ではなく、その日付を確認する方法です....

For Ex: String userWeeks="SUNDAY,MONDAY";

Calendarこれはユーザー文字列で、日付をこの文字列に比較する方法userWeeksです。

最初に文字列を分割してuserWeeks.split(",")から分離しますSUNDAY MONDAY

So How to compare This String into Calendar?
4

3 に答える 3

1

このようにチェック

int day=cal.get(Calendar.DAY_OF_WEEK);
if(day == Calendar.SUNDAY)
{
//it is sunday
}

文字列でチェックするため

HashMap<String,Integer> daysOfWeeks=new HashMap<String,Integer>();
daysOfWeek.put("SUNDAY",new Integer(Calendar.SUNDAY));
//and the rest

それから

String day=//user input;
Integer i=daysOfWeek.get(day)
if(i!=null)
{
if(i==Calendar.SUNDAY)
{
//it is sunday;
}
}
于 2012-12-07T05:28:25.167 に答える
1

ur ループに if 条件を追加する

 while (!cal.equals(cal1)) {
          cal.add(Calendar.DATE, 1);
          int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
          if((Calendar.MONDAY==dayOfWeek)||(Calendar.SUNDAY==dayOfWeek)){
            System.out.println(cal.getTime());
          }
        }
于 2012-12-07T05:25:28.960 に答える
0

最後に、私はこのように私のコードの問題があると思います。私について話し合ってください。

    import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;


public class SimpleDateFormatClass 
{
    public static void main(String args[]) throws Exception
    {
         DateFormat formatter = new SimpleDateFormat("yyyy-mm-dd");
            String str_date ="2012-12-01";
            String end_date ="2012-12-10";
            Date startDate = (Date) formatter.parse(str_date);
            Date endDate = (Date) formatter.parse(end_date);
            Calendar cal = Calendar.getInstance();
            Calendar cal1 = Calendar.getInstance();
            cal.setTime(startDate);
            cal1.setTime(endDate);
    while (!cal.equals(cal1))
    {       
                cal.add(Calendar.DATE, 1);      

         String days="Fri,mon,tue";
          for (String retval: days.split(","))
            {
        SimpleDateFormat sdf= new SimpleDateFormat("EEEE");
        Date date1= sdf.parse(retval);

              if(date1.getDay()==cal.get(Calendar.DAY_OF_WEEK))
                  {
                       System.out.println(cal.getTime());
                  }
           // System.out.println(date1);
           }
    }//While
    }//Main
}
于 2012-12-07T11:05:51.293 に答える