Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Android中获取一周中当前一天的最简单方法是什么?_Java_Android - Fatal编程技术网

Java 在Android中获取一周中当前一天的最简单方法是什么?

Java 在Android中获取一周中当前一天的最简单方法是什么?,java,android,Java,Android,在Android中获取当前工作日的最简单方法是什么?Java类可以工作 Calendar calendar = Calendar.getInstance(); int day = calendar.get(Calendar.DAY_OF_WEEK); switch (day) { case Calendar.SUNDAY: // Current day is Sunday break; case Calendar.MONDAY:

在Android中获取当前工作日的最简单方法是什么?

Java类可以工作

Calendar calendar = Calendar.getInstance();
int day = calendar.get(Calendar.DAY_OF_WEEK); 

switch (day) {
    case Calendar.SUNDAY:
        // Current day is Sunday
        break;
    case Calendar.MONDAY:
        // Current day is Monday
        break;
    case Calendar.TUESDAY:
        // etc.
        break;
}

<>对于更好的数据处理,请考虑使用:

要使用以下Android SDK 26,您需要在build.gradle中启用Java 8 desugaring:

android {
  defaultConfig {
    // Required when setting minSdkVersion to 20 or lower
    multiDexEnabled true
  }

  compileOptions {
    // Flag to enable support for the new language APIs
    coreLibraryDesugaringEnabled true
    // Sets Java compatibility to Java 8
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}

dependencies {
  coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.9'
}
有关Android Java 8支持的更多信息:


和Java一样,Android没有什么特别之处

由于GregoriaCalendar中的一周的第几天类是一个静态字段,您可以直接访问它 傻瓜

int dayOfWeek=GregorianCalendar.DAY/u周

Calendar Calendar=Calendar.getInstance();
Date=calendar.getTime();
//3字母名称当天的表格
System.out.println(新的SimpleDataFormat(“EE”,Locale.ENGLISH).format(date.getTime());
//当日全名表格
System.out.println(新的SimpleDataFormat(“EEEE”,Locale.ENGLISH).format(date.getTime());
结果(今日):

结果(今日):


如果您根本不想使用Calendar类,则可以使用此

String weekday_name = new SimpleDateFormat("EEEE", Locale.ENGLISH).format(System.currentTimeMillis());
i、 结果是

"Sunday"

使用这两种方法,如果你坚持不了七天,你会发现很容易 您使用(currentdaynumber+7-1)%7,(currentdaynumber+7-2)%7…..最多6个

public static String getDayName(int day){
    switch(day){
        case 0:
            return "Sunday";
        case 1:
            return "Monday";
        case 2:
            return "Tuesday";
        case 3:
            return "Wednesday";
        case 4:
            return "Thursday";
        case 5:
            return  "Friday";
        case 6:
            return "Saturday";
    }

    return "Worng Day";
}
public static String getCurrentDay(){
    SimpleDateFormat dayFormat = new SimpleDateFormat("EEEE", Locale.US);
    Calendar calendar = Calendar.getInstance();
    return dayFormat.format(calendar.getTime());

}

下面是我获取当前日期的简单方法

public String getCurrentDay(){

    String daysArray[] = {"Sunday","Monday","Tuesday", "Wednesday","Thursday","Friday", "Saturday"};

    Calendar calendar = Calendar.getInstance();
    int day = calendar.get(Calendar.DAY_OF_WEEK);

    return daysArray[day];

}

Java 8
datetime
API
使其变得更加简单:

LocalDate.now().getDayOfWeek().name()
将以
String

产出:星期四


您可以将该代码用于Kotlin,您将在Kotlin中使用java中的calendar类

    val day = Calendar.getInstance().get(Calendar.DAY_OF_WEEK)

    fun dayOfWeek() {
    println("What day is it today?")
    val day = Calendar.getInstance().get(Calendar.DAY_OF_WEEK)
    println( when (day) {
      1 -> "Sunday"
      2 -> "Monday"
      3 -> "Tuesday"
      4 -> "Wednesday"
      5 -> "Thursday"
      6 -> "Friday"
      7 -> "Saturday"
      else -> "Time has stopped"
   })
 }

万一你不想在安卓系统上做这件事,想想哪一天不是所有设备都在本地时间标记日历是很有帮助的

从Java 8开始:

LocalDate.now(ZoneId.of("America/Detroit")).getDayOfWeek()

如果要在
strings.xml
中定义日期字符串。你可以像下面这样做。
Calendar.DAY\u OF_WEEK
1->7
Calendar.SUNDAY->Calendar.SATURDAY

strings.xml

<string-array name="title_day_of_week">
    <item>日</item> <!-- sunday -->
    <item>月</item> <!-- monday -->
    <item>火</item>
    <item>水</item>
    <item>木</item>
    <item>金</item>
    <item>土</item> <!-- saturday -->
</string-array>
使用

// get current day
val currentDay = Date().getDayOfWeek(context)

// get specific day
val dayString = "2021-1-4"
val day = dayString.getDayOfWeek(context, "yyyy-MM-dd")

我不知道为什么,但在我的例子中,日期从1开始,而不是从0开始。因此,我的数组如下所示:
String[]days={?”,“Sun”,“Mon”,“Tue”,“Wed”,“Thu”,“Fri”,“Sat”}你可以去掉“?”,然后像
int day=calendar.get(calendar.day\u of u WEEK)-1这是跨Java而不是Android应用的。“Calendar”类来自java.utilpackage@Navin伊斯拉尼你什么意思?我看不出使用java.util有任何问题。日历添加到API级别1.add中。Kotlin到你的旗子上这会返回一个INT,你可以在日历上查看。星期天等等。很好!但API~21在Androidany解决方案中需要API级别26?感谢您也可以轻松地为java和Kotlin使用Calendar类
public static String getDayName(int day){
    switch(day){
        case 0:
            return "Sunday";
        case 1:
            return "Monday";
        case 2:
            return "Tuesday";
        case 3:
            return "Wednesday";
        case 4:
            return "Thursday";
        case 5:
            return  "Friday";
        case 6:
            return "Saturday";
    }

    return "Worng Day";
}
public static String getCurrentDay(){
    SimpleDateFormat dayFormat = new SimpleDateFormat("EEEE", Locale.US);
    Calendar calendar = Calendar.getInstance();
    return dayFormat.format(calendar.getTime());

}
public String getCurrentDay(){

    String daysArray[] = {"Sunday","Monday","Tuesday", "Wednesday","Thursday","Friday", "Saturday"};

    Calendar calendar = Calendar.getInstance();
    int day = calendar.get(Calendar.DAY_OF_WEEK);

    return daysArray[day];

}
LocalDate.now().getDayOfWeek().name()
    val day = Calendar.getInstance().get(Calendar.DAY_OF_WEEK)

    fun dayOfWeek() {
    println("What day is it today?")
    val day = Calendar.getInstance().get(Calendar.DAY_OF_WEEK)
    println( when (day) {
      1 -> "Sunday"
      2 -> "Monday"
      3 -> "Tuesday"
      4 -> "Wednesday"
      5 -> "Thursday"
      6 -> "Friday"
      7 -> "Saturday"
      else -> "Time has stopped"
   })
 }
LocalDate.now(ZoneId.of("America/Detroit")).getDayOfWeek()
<string-array name="title_day_of_week">
    <item>日</item> <!-- sunday -->
    <item>月</item> <!-- monday -->
    <item>火</item>
    <item>水</item>
    <item>木</item>
    <item>金</item>
    <item>土</item> <!-- saturday -->
</string-array>
fun String.getDayOfWeek(context: Context, format: String): String {
    val date = SimpleDateFormat(format, Locale.getDefault()).parse(this)
    return date?.getDayOfWeek(context) ?: "unknown"
}

fun Date.getDayOfWeek(context: Context): String {
    val c = Calendar.getInstance().apply { time = this@getDayOfWeek }
    return context.resources.getStringArray(R.array.title_day_of_week)[c[Calendar.DAY_OF_WEEK] - 1]
}
// get current day
val currentDay = Date().getDayOfWeek(context)

// get specific day
val dayString = "2021-1-4"
val day = dayString.getDayOfWeek(context, "yyyy-MM-dd")