Hoe de dag van de week bepalen door een specifieke datum door te geven?

Ik heb bijvoorbeeld de datum: “23/2/2010” (23 februari 2010). Ik wil het doorgeven aan een functie die de dag van de weekzou retourneren. Hoe kan ik dit doen?

In dit voorbeeld moet de functie String“Tue” teruggeven.

Bovendien, als alleen de dagordinaal is gewenst, hoe kan die dan worden opgehaald?


Antwoord 1, autoriteit 100%

Ja. Afhankelijk van uw exacte geval:

  • U kunt java.util.Calendargebruiken:

    Calendar c = Calendar.getInstance();
    c.setTime(yourDate);
    int dayOfWeek = c.get(Calendar.DAY_OF_WEEK);
    
  • als u wilt dat de uitvoer Tueis in plaats van 3 (Weekdagen worden geïndexeerd vanaf 1 voor zondag, zie Calendar.SUNDAY), in plaats van door een kalender te gaan, hoeft u alleen maar formatteer de tekenreeks opnieuw: new SimpleDateFormat("EE").format(date)(EEbetekent “dag van de week, korte versie”)

  • als u uw invoer als tekenreeks hebt, in plaats van Date, moet u SimpleDateFormatgebruiken om het te ontleden: new SimpleDateFormat("dd/M/yyyy").parse(dateString)

  • je kunt DateTimevan joda-time gebruiken en dateTime.dayOfWeek()en/of DateTimeFormataanroepen.

  • edit: sinds Java 8 kun je nu het java.time-pakket gebruiken in plaats van joda-time


Antwoord 2, autoriteit 19%

 String input_date="01/08/2012";
  SimpleDateFormat format1=new SimpleDateFormat("dd/MM/yyyy");
  Date dt1=format1.parse(input_date);
  DateFormat format2=new SimpleDateFormat("EEEE"); 
  String finalDay=format2.format(dt1);

Gebruik deze code om de naam van de dag te vinden vanaf een ingevoerde datum.Eenvoudig en goed getest.


Antwoord 3, autoriteit 9%

Gebruik gewoon SimpleDateFormat.

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy", java.util.Locale.ENGLISH);
Date myDate = sdf.parse("28/12/2013");
sdf.applyPattern("EEE, d MMM yyyy");
String sMyDate = sdf.format(myDate);

Het resultaat is: za 28 dec 2013

De standaardconstructor gebruikt “de standaard” Locale , dus wees voorzichtig wanneer je een specifiek patroon nodig hebt.

public SimpleDateFormat(String pattern) {
    this(pattern, Locale.getDefault(Locale.Category.FORMAT));
}

Antwoord 4, autoriteit 6%

tl;dr

java.timegebruiken …

LocalDate.parse(                               // Generate `LocalDate` object from String input.
             "23/2/2010" ,
             DateTimeFormatter.ofPattern( "d/M/uuuu" ) 
         )                                    
         .getDayOfWeek()                       // Get `DayOfWeek` enum object.
         .getDisplayName(                      // Localize. Generate a String to represent this day-of-week.
             TextStyle.SHORT_STANDALONE ,      // How long or abbreviated. Some languages have an alternate spelling for "standalone" use (not so in English).
             Locale.US                         // Or Locale.CANADA_FRENCH and such. Specify a `Locale` to determine (1) human language for translation, and (2) cultural norms for abbreviation, punctuation, etc.
         ) 

di

Zie deze code die live wordt uitgevoerd op IdeOne.com(maar alleen Locale.USwerkt daar).

java.time

Zie mijn voorbeeldcode hierboven en bekijk het juiste antwoord voor java.time door Przemek.

Rangnummer

Als alleen de dagordinaal is gewenst, hoe kan die dan worden opgehaald?

Overweeg voor een volgnummer de DayOfWeekenum-object in plaats daarvan, zoals DayOfWeek.TUESDAY. Houd er rekening mee dat een DayOfWeekeen slim object is, niet alleen een tekenreeks of een geheel getal. Het gebruik van die enum-objectenmaakt je code zelfdocumenterend, zorgt voor geldige waarden en biedt type-safety.

Maar als je erop staat, vraag DayOfWeekom een nummer. Je krijgt 1-7 voor maandag-zondag volgens de ISO 8601-standaard.

int ordinal = myLocalDate.getDayOfWeek().getValue() ;

Joda-Time

UPDATE:Het Joda-Time-project bevindt zich nu in de onderhoudsmodus. Het team adviseert om te migreren naar de java.time-klassen. Het java.time framework is ingebouwd in Java 8 (evenals back-ported naar Java 6 & 7en verder aangepast aan Android).

Hier is voorbeeldcode die gebruikmaakt van de Joda-Timebibliotheekversie 2.4, zoals vermeld in de antwoord geaccepteerd door Bozho. Joda-Time is veel beter dan de java.util.Date/.Calendar-klassen die bij Java worden geleverd.

LocalDate

Joda-Time biedt de LocalDateklasse om alleen een datum weer te geven zonder tijd van de dag of tijdzone. Precies waar deze vraag om vraagt. De oude java.util.Date/.Calendar klassen gebundeld met Java missen dit concept.

Ontleden

Ontleed de tekenreeks in een datumwaarde.

String input = "23/2/2010";
DateTimeFormatter formatter = DateTimeFormat.forPattern( "d/M/yyyy" );
LocalDate localDate = formatter.parseLocalDate( input );

Uitpakken

Haal uit de datumwaarde het nummer en de naam van de dag van de week.

int dayOfWeek = localDate.getDayOfWeek(); // Follows ISO 8601 standard, where Monday = 1, Sunday = 7.
Locale locale = Locale.US;  // Locale specifies the human language to use in determining day-of-week name (Tuesday in English versus Mardi in French).
DateTimeFormatter formatterOutput = DateTimeFormat.forPattern( "E" ).withLocale( locale );
String output = formatterOutput.print( localDate ); // 'E' is code for abbreviation of day-of-week name. See Joda-Time doc.
String outputQuébécois = formatterOutput.withLocale( Locale.CANADA_FRENCH ).print( localDate );

Dump

Dump to console.

System.out.println( "input: " + input );
System.out.println( "localDate: " + localDate ); // Defaults to ISO 8601 formatted strings.
System.out.println( "dayOfWeek: " + dayOfWeek );
System.out.println( "output: " + output );
System.out.println( "outputQuébécois: " + outputQuébécois );

RUN

wanneer het wordt uitgevoerd.

input: 23/2/2010
localDate: 2010-02-23
dayOfWeek: 2
output: Tue
outputQuébécois: mar.

Over Java.Tijd

De java.time Framework is ingebouwd in Java 8 en later. Deze klassen bieden de lastige oude Legacy DATE-TIJD-klassen zoals java.util.Date, Calendar, & amp; SimpleDateFormat.

Het Joda-Time-project, nu in onderhoudsmodus, adviseert migratie naar de java.timeklassen.

Zie de Oracle-zelfstudievoor meer informatie. En zoek Stack Overflow voor veel voorbeelden en uitleg. Specificatie is JSR 310.

Waar zijn de java.time-klassen te verkrijgen?

De ThreeTen-Extra Project verlengt Java.Time met extra klassen. Dit project is een bewijsgrond voor mogelijke toekomstige toevoegingen aan Java.Time. Mogelijk vindt u hier een aantal bruikbare klassen, zoals Interval, YearWeek, YearQuarteren meer .


Antwoord 5, Autoriteit 5%

java.time

met java.timeFramework ingebouwd in Java 8 en later.

De DayOfWeekENUM kan automatisch een reeks van de naam van de dag genereren Gelokaliseerd voor de menselijke taal en culturele normen van een Locale. Geef een TextStyleOm aan te geven dat u een lange vorm of verkorte naam wilt.

import java.time.LocalDate
import java.time.format.DateTimeFormatter
import java.time.format.TextStyle
import java.util.Locale
import java.time.DayOfWeek;
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("d/M/yyyy");
LocalDate date = LocalDate.parse("23/2/2010", formatter); // LocalDate = 2010-02-23
DayOfWeek dow = date.getDayOfWeek();  // Extracts a `DayOfWeek` enum object.
String output = dow.getDisplayName(TextStyle.SHORT, Locale.US); // String = Tue

Antwoord 6, autoriteit 3%

Voor Java 8 of laterheeft Localdatede voorkeur

import java.time.LocalDate;
public static String findDay(int month, int day, int year) {
    LocalDate localDate = LocalDate.of(year, month, day);
    java.time.DayOfWeek dayOfWeek = localDate.getDayOfWeek();
    System.out.println(dayOfWeek);
    return dayOfWeek.toString();
}

Opmerking:als invoer door String/User is gedefinieerd, moet u deze ontleden in int.


Antwoord 7, autoriteit 3%

Je kunt de volgende code proberen:

import java.time.*;
public class Test{
   public static void main(String[] args) {
      DayOfWeek dow = LocalDate.of(2010,Month.FEBRUARY,23).getDayOfWeek();
      String s = String.valueOf(dow);
      System.out.println(String.format("%.3s",s));
   }
}

Antwoord 8, autoriteit 2%

public class TryDateFormats {
    public static void main(String[] args) throws ParseException {
        String month = "08";
        String day = "05";
        String year = "2015";
        String inputDateStr = String.format("%s/%s/%s", day, month, year);
        Date inputDate = new SimpleDateFormat("dd/MM/yyyy").parse(inputDateStr);
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(inputDate);
        String dayOfWeek = calendar.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.US).toUpperCase();
        System.out.println(dayOfWeek);
    }
}

Antwoord 9, Autoriteit 2%

...
import java.time.LocalDate;
...
//String month = in.next();
int mm = in.nextInt();
//String day = in.next();
int dd = in.nextInt();
//String year = in.next();
int yy = in.nextInt();
in.close();
LocalDate dt = LocalDate.of(yy, mm, dd);
System.out.print(dt.getDayOfWeek());

Antwoord 10

Nog een “leuke” manier is om doemsday algoritme te gebruiken. Het is een manier die langere methode is, maar het is ook sneller als u geen kalenderobject met een bepaalde datum hoeft te maken.

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;
/**
 *
 * @author alain.janinmanificat
 */
public class Doomsday {
    public static HashMap<Integer, ArrayList<Integer>> anchorDaysMap = new HashMap<>();
    public static HashMap<Integer, Integer> doomsdayDate = new HashMap<>();
    public static String weekdays[] = new DateFormatSymbols(Locale.FRENCH).getWeekdays();
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws ParseException, ParseException {
        // Map is fed manually but we can use this to calculate it : http://en.wikipedia.org/wiki/Doomsday_rule#Finding_a_century.27s_anchor_day
        anchorDaysMap.put(Integer.valueOf(0), new ArrayList<Integer>() {
            {
                add(Integer.valueOf(1700));
                add(Integer.valueOf(2100));
                add(Integer.valueOf(2500));
            }
        });
        anchorDaysMap.put(Integer.valueOf(2), new ArrayList<Integer>() {
            {
                add(Integer.valueOf(1600));
                add(Integer.valueOf(2000));
                add(Integer.valueOf(2400));
            }
        });
        anchorDaysMap.put(Integer.valueOf(3), new ArrayList<Integer>() {
            {
                add(Integer.valueOf(1500));
                add(Integer.valueOf(1900));
                add(Integer.valueOf(2300));
            }
        });
        anchorDaysMap.put(Integer.valueOf(5), new ArrayList<Integer>() {
            {
                add(Integer.valueOf(1800));
                add(Integer.valueOf(2200));
                add(Integer.valueOf(2600));
            }
        });
        //Some reference date that always land on Doomsday
        doomsdayDate.put(Integer.valueOf(1), Integer.valueOf(3));
        doomsdayDate.put(Integer.valueOf(2), Integer.valueOf(14));
        doomsdayDate.put(Integer.valueOf(3), Integer.valueOf(14));
        doomsdayDate.put(Integer.valueOf(4), Integer.valueOf(4));
        doomsdayDate.put(Integer.valueOf(5), Integer.valueOf(9));
        doomsdayDate.put(Integer.valueOf(6), Integer.valueOf(6));
        doomsdayDate.put(Integer.valueOf(7), Integer.valueOf(4));
        doomsdayDate.put(Integer.valueOf(8), Integer.valueOf(8));
        doomsdayDate.put(Integer.valueOf(9), Integer.valueOf(5));
        doomsdayDate.put(Integer.valueOf(10), Integer.valueOf(10));
        doomsdayDate.put(Integer.valueOf(11), Integer.valueOf(7));
        doomsdayDate.put(Integer.valueOf(12), Integer.valueOf(12));
        long time = System.currentTimeMillis();
        for (int i = 0; i < 100000; i++) {
            //Get a random date
            int year = 1583 + new Random().nextInt(500);
            int month = 1 + new Random().nextInt(12);
            int day = 1 + new Random().nextInt(7);
            //Get anchor day and DoomsDay for current date
            int twoDigitsYear = (year % 100);
            int century = year - twoDigitsYear;
            int adForCentury = getADCentury(century);
            int dd = ((int) twoDigitsYear / 12) + twoDigitsYear % 12 + (int) ((twoDigitsYear % 12) / 4);
            //Get the gap between current date and a reference DoomsDay date
            int referenceDay = doomsdayDate.get(month);
            int gap = (day - referenceDay) % 7;
            int result = (gap + adForCentury + dd) % 7;
            if(result<0){
                result*=-1;
            }
            String dayDate= weekdays[(result + 1) % 8];
            //System.out.println("day:" + dayDate);
        }
        System.out.println("time (ms) : " + (System.currentTimeMillis() - time)); //time (ms) : 80
         time = System.currentTimeMillis();
        for (int i = 0; i < 100000; i++) {
            Calendar c = Calendar.getInstance();
            //I should have used random date here too, but it's already slower this way
            c.setTime(new SimpleDateFormat("dd/MM/yyyy").parse("12/04/1861"));
//            System.out.println(new SimpleDateFormat("EE").format(c.getTime()));
            int result2 = c.get(Calendar.DAY_OF_WEEK);
//            System.out.println("day idx :"+ result2);
        }
        System.out.println("time (ms) : " + (System.currentTimeMillis() - time)); //time (ms) : 884
    }
    public static int getADCentury(int century) {
        for (Map.Entry<Integer, ArrayList<Integer>> entry : anchorDaysMap.entrySet()) {
            if (entry.getValue().contains(Integer.valueOf(century))) {
                return entry.getKey();
            }
        }
        return 0;
    }
}

Antwoord 11

kan de volgende code fragment gebruiken voor invoer zoals (dag = “08”, maand = “05”, jaar = “2015” en uitvoer is “woensdag”)

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_MONTH, Integer.parseInt(day));
calendar.set(Calendar.MONTH, (Integer.parseInt(month)-1));
calendar.set(Calendar.YEAR, Integer.parseInt(year));
String dayOfWeek = calendar.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.US).toUpperCase();

Antwoord 12

One Line Antwoord:

return LocalDate.parse("06/02/2018",DateTimeFormatter.ofPattern("dd/MM/yyyy")).getDayOfWeek().name();

Gebruiksvoorbeeld:

public static String getDayOfWeek(String date){
  return LocalDate.parse(date, DateTimeFormatter.ofPattern("dd/MM/yyyy")).getDayOfWeek().name();
}
public static void callerMethod(){
   System.out.println(getDayOfWeek("06/02/2018")); //TUESDAY
}

Antwoord 13

private String getDay(Date date){
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("EEEE");
    //System.out.println("DAY "+simpleDateFormat.format(date).toUpperCase());                       
    return simpleDateFormat.format(date).toUpperCase();
}
private String getDay(String dateStr){
    //dateStr must be in DD-MM-YYYY Formate
    Date date = null;
    String day=null;
    try {
        date = new SimpleDateFormat("DD-MM-YYYY").parse(dateStr);
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("EEEE");
        //System.out.println("DAY "+simpleDateFormat.format(date).toUpperCase());
        day = simpleDateFormat.format(date).toUpperCase();
    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return day;
}

Antwoord 14

Programma om de dag van de week te vinden door de gebruiker de maand en het jaar in te voeren met behulp van het java.util.scanner-pakket:

import java.util.Scanner;
public class Calender {
    public static String getDay(String day, String month, String year) {
        int ym, yp, d, ay, a = 0;
        int by = 20;
        int[] y = new int[]{6, 4, 2, 0};
        int[] m = new int []{0, 3, 3, 6, 1, 4, 6, 2, 5, 0, 3, 5};
        String[] wd = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
        int gd = Integer.parseInt(day);
        int gm = Integer.parseInt(month);
        int gy = Integer.parseInt(year);
        ym = gy % 100;
        yp = ym / 4;
        ay = gy / 100;
        while (ay != by) {
            by = by + 1;
            a = a + 1;
            if(a == 4) {
                a = 0;
            }
        }
        if ((ym % 4 == 0) && (gm == 2)) {
            d = (gd + m[gm - 1] + ym + yp + y[a] - 1) % 7;
        } else
            d = (gd + m[gm - 1] + ym + yp + y[a]) % 7;
        return wd[d];
    }
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String day = in.next();
        String month = in.next();
        String year = in.next();
        System.out.println(getDay(day, month, year));
    }
}

Antwoord 15

Kalenderklasse heeft ingebouwde displayName-functionaliteit:

Calendar.getInstance().getDisplayName(Calendar.DAY_OF_WEEK, Calendar.SHORT, Locale.getDefault()); // Thu   
Calendar.SHORT -> Thu
Calendar.LONG_FORMAT -> Thursday

Beschikbaar sinds Java 1.6. Zie ook Oracle-documentatie


Antwoord 16

Er is een uitdaging op hackerrank Java-datum en -tijd

persoonlijk geef ik de voorkeur aan de LocalDate-klasse.

  1. Java.time.LocalDate importeren
  2. Haal localDate op met behulp van de “of”-methode die 3 argumenten inneemt
    “int” formaat.
  3. neem ten slotte de naam van die dag op met de “getDayOfWeek”-methode.

Er is één video over deze uitdaging.

Java datum en tijd Hackerrank-oplossing

Ik hoop dat het zal helpen 🙂


Antwoord 17

Een andere manier toevoegen om het precies te doen waar de OP om heeft gevraagd, zonder de nieuwste ingebouwde methoden te gebruiken:

public static String getDay(String inputDate) {
    String dayOfWeek = null;
    String[] days = new String[]{"Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"};
    try {
        SimpleDateFormat format1 = new SimpleDateFormat("dd/MM/yyyy");
        Date dt1 = format1.parse(inputDate);
        dayOfWeek = days[dt1.getDay() - 1];
    } catch(Exception e) {
        System.out.println(e);
    }
    return dayOfWeek;
}

Antwoord 18

import java.text.SimpleDateFormat;
import java.util.Scanner;
class DayFromDate {
    public static void main(String args[]) {
        System.out.println("Enter the date(dd/mm/yyyy):");
        Scanner scan = new Scanner(System.in);
        String Date = scan.nextLine();
        try {
            boolean dateValid = dateValidate(Date);
            if(dateValid == true) {
                SimpleDateFormat df = new SimpleDateFormat( "dd/MM/yy" );  
                java.util.Date date = df.parse( Date );   
                df.applyPattern( "EEE" );  
                String day= df.format( date ); 
                if(day.compareTo("Sat") == 0 || day.compareTo("Sun") == 0) {
                    System.out.println(day + ": Weekend");
                } else {
                    System.out.println(day + ": Weekday");
                }
            } else {
                System.out.println("Invalid Date!!!");
            }
        } catch(Exception e) {
            System.out.println("Invalid Date Formats!!!");
        }
     }
    static public boolean dateValidate(String d) {
        String dateArray[] = d.split("/");
        int day = Integer.parseInt(dateArray[0]);
        int month = Integer.parseInt(dateArray[1]);
        int year = Integer.parseInt(dateArray[2]);
        System.out.print(day + "\n" + month + "\n" + year + "\n");
        boolean leapYear = false;
        if((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0)) {
            leapYear = true;
        }
        if(year > 2099 || year < 1900)
            return false;
        if(month < 13) {
            if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {
                if(day > 31)
                    return false;
            } else if(month == 4 || month == 6 || month == 9 || month == 11) {
                if(day > 30)
                    return false;
            } else if(leapYear == true && month == 2) {
                if(day > 29)
                    return false;
            } else if(leapYear == false && month == 2) {
                if(day > 28)
                    return false;
            }
            return true;    
        } else return false;
    }
}

Antwoord 19

de onderstaande methode haalt zeven dagen op en retourneert de korte naam van dagen in List Array in Kotlin, maar je kunt het gewoon opnieuw formatteren in Java-indeling, waarbij je een idee geeft hoe Calendar een korte naam kan retourneren

private fun getDayDisplayName():List<String>{
        val calendar = Calendar.getInstance()
        val dates= mutableListOf<String>()
        dates.clear()
        val s=   calendar.getDisplayName(DAY_OF_WEEK, SHORT, Locale.US)
        dates.add(s)
        for(i in 0..5){
            calendar.roll( Calendar.DATE, -1)
            dates.add(calendar.getDisplayName(DAY_OF_WEEK, SHORT, Locale.US))
        }
        return dates.toList()
    }

resultaten opleveren zoals

I/System.out: Wed
    Tue
    Mon
    Sun
I/System.out: Sat
    Fri
    Thu

Antwoord 20

Calendar cal = Calendar.getInstance(desired date);
cal.setTimeInMillis(System.currentTimeMillis());
int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);

Krijg de dagwaarde door de huidige tijdstempel te bieden.


Antwoord 21

LocalDate date=LocalDate.now();
System.out.println(date.getDayOfWeek());//prints THURSDAY
System.out.println(date.getDayOfWeek().getDisplayName(TextStyle.SHORT, Locale.US) );  //prints Thu   
java.time.DayOfWeek is a enum which returns the singleton instance for the day-of-week of the weekday of the date.

Antwoord 22

//to get day of any date
import java.util.Scanner; 
import java.util.Calendar; 
import java.util.Date;
public class Show {
    public static String getDay(String day,String month, String year){
            String input_date = month+"/"+day+"/"+year;
            Date now = new Date(input_date);
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(now);
            int final_day = (calendar.get(Calendar.DAY_OF_WEEK));
            String finalDay[]={"SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"};
            System.out.println(finalDay[final_day-1]);
    }
    public static void main(String[] args) { 
            Scanner in = new Scanner(System.in); 
            String month = in.next(); 
        String day = in.next();
            String year = in.next();
            getDay(day, month, year);
    }
}

Antwoord 23

Dit werkt correct …

java.time.LocalDate; //package related to time and date

Het biedt ingebouwde methode GetDayOfweek () om de dag van een bepaalde week te krijgen:

int t;
Scanner s = new Scanner(System.in);
t = s.nextInt();
s.nextLine();
 while(t-->0) { 
    int d, m, y;
    String ss = s.nextLine();
    String []sss = ss.split(" ");
    d=Integer.parseInt(sss[0]);
    m = Integer.parseInt(sss[1]);
    y = Integer.parseInt(sss[2]);
    LocalDate l = LocalDate.of(y, m, d); //method to get the localdate instance
    System.out.println(l.getDayOfWeek()); //this returns the enum DayOfWeek

Om de waarde van ENUM l.getDayOfWeek()aan een tekenreeks toe te wijzen, kunt u waarschijnlijk de methode van ENUM gebruiken die name()heeft genoemd, die de waarde van ENUM retourneert object.


Antwoord 24

U kunt onderstaande methode gebruiken om de dag van de week te krijgen door een specifieke datum te passeren,

Hier voor de ingestelde methode van kalenderklasse, is lastig onderdeel de index voor de parameter van de maand begint van 0 .

public static String getDay(int day, int month, int year) {
        Calendar cal = Calendar.getInstance();
        if(month==1){
            cal.set(year,0,day);
        }else{
            cal.set(year,month-1,day);
        }
        int dow = cal.get(Calendar.DAY_OF_WEEK);
        switch (dow) {
        case 1:
            return "SUNDAY";
        case 2:
            return "MONDAY";
        case 3:
            return "TUESDAY";
        case 4:
            return "WEDNESDAY";
        case 5:
            return "THURSDAY";
        case 6:
            return "FRIDAY";
        case 7:
            return "SATURDAY";
        default:
            System.out.println("GO To Hell....");
        }
        return null;
    }

Antwoord 25

Hieronder staat het fragment met twee regels dat Java 1.8 Time API gebruikt voor uw vereiste.

LocalDate localDate = LocalDate.of(Integer.valueOf(year),Integer.valueOf(month),Integer.valueOf(day));
String dayOfWeek = String.valueOf(localDate.getDayOfWeek());

Other episodes