2016-11-25 163 views
3

我想让它比较一周中的某一天,如果是周末,然后执行一个操作(尚未实现),但如果我在今天的日期放置25/11/2016或明天26/11/2016的明天,它仍然只打印“WEEKDAY”。它没有工作,我坚持:/确定日期是周日/周末java

public static void calcDatePrice(String a, boolean b, double c){ 
    System.out.println("CALC PRICE METHOD: " + a); 
    Double price; 
    Date d1 = new Date(a); 

    Calendar c1 = Calendar.getInstance(); 
    c1.setTime(d1); 
    System.out.println(c1.get(Calendar.DAY_OF_WEEK)); 

    if ((c1.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY) 
      || (Calendar.DAY_OF_WEEK == Calendar.SUNDAY)) { //or sunday 
    System.out.println("WEEKEND PRICE"); 
    }else { 
    System.out.println("WEEKDAY"); 
    } 
} 
+3

你忘了'c1.get'你,如果:'c1.get(Calendar.DAY_OF_WEEK) == Calendar.UNDAY'不是'Calendar.DAY_OF_WEEK == Calendar.SUNDAY' –

+0

有些国家周末有所不同。也许你会发现我的方法[实现本地化的周末](http://time4j.net/javadoc-en/net/time4j/PlainDate.html#isWeekend-java.util.Locale-)有趣。 –

+0

请在发布之前先搜索Stack Overflow。 –

回答

-1
if ((c1.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY) || (c1.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY)) { 
    System.out.println("WEEKEND PRICE"); 
} else { 
    System.out.println("WEEKDAY"); 
} 
6

在你忘了c1.get上周日的if语句。应该是这样的:

if (c1.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY || 
    c1.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) 

你为什么发送布尔b和双c?它从未使用过。

+0

对于我还没有写的方法,我想因为它甚至没有工作,但没有任何要完成的计算的点 –

+0

好的,如果这个解决方案适合你。请upvote :) –

-2

可以使用calender.DayofWeek方法找到它是一天

Calendar cl = Calendar.getInstance(); 
 
c1.setTime(Enter Yor Date); 
 
int day = c.get(Calendar.DAY_OF_WEEK); 
 
if(check day value is 5 or 6) 
 
    { 
 
    // Weekend Coding 
 
    } 
 
Else 
 
{ 
 
    // Weekday Coding 
 
}