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.Calendar
gebruiken:Calendar c = Calendar.getInstance(); c.setTime(yourDate); int dayOfWeek = c.get(Calendar.DAY_OF_WEEK);
-
als u wilt dat de uitvoer
Tue
is 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)
(EE
betekent “dag van de week, korte versie”) -
als u uw invoer als tekenreeks hebt, in plaats van
Date
, moet uSimpleDateFormat
gebruiken om het te ontleden:new SimpleDateFormat("dd/M/yyyy").parse(dateString)
-
je kunt
DateTime
van joda-time gebruiken endateTime.dayOfWeek()
en/ofDateTimeFormat
aanroepen. -
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.US
werkt 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 DayOfWeek
enum-object in plaats daarvan, zoals DayOfWeek.TUESDAY
. Houd er rekening mee dat een DayOfWeek
een 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 DayOfWeek
om 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 LocalDate
klasse 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?
- Java SE 8, Java SE 9en hoger
- Ingebouwd.
- Onderdeel van de standaard Java API met een gebundelde implementatie.
- Java 9 voegt enkele kleine functies en oplossingen toe.
- Java SE 6en Java SE 7
- Veel van de java.time-functionaliteit is teruggekoppeld naar Java 6 & 7 in ThreeTen-Backport.
- Android
- Het ThreeTenABP-project past ThreeTen-Backport(hierboven vermeld) specifiek voor Android.
- Zie HOE TREETENABP … .
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
, YearQuarter
en meer .
Antwoord 5, Autoriteit 5%
java.time
met java.time
Framework ingebouwd in Java 8 en later.
De DayOfWeek
ENUM kan automatisch een reeks van de naam van de dag genereren Gelokaliseerd voor de menselijke taal en culturele normen van een Locale
. Geef een TextStyle
Om 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.
- Java.time.LocalDate importeren
- Haal localDate op met behulp van de “of”-methode die 3 argumenten inneemt
“int” formaat. - 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());