找到用户出生日期输入的星期几

时间:2015-01-13 20:28:02

标签: date input format java.util.date

好的,所以我试图创建一个程序,其中用户以dd / mm / yyyy格式(或类似的东西)输入他们的出生日期。我的老师和我很难连接,主要是因为我繁忙的日程安排,所以她无法提供帮助。我会发布作业说明,但请记住,如果你想帮助我,我在选择它时非常慢。所以"白痴"首选说明: - )......'以下是具体说明....我怎么开始这个?

***编写一个程序,要求用户解雇他/她的出生日期,并回复他们出生的星期几。你不能使用格里高利历。

有一些提示可以同时使用java.util和java.sql,字符串表示形式必须是yyyy-MM-dd格式。

如果需要更多关于我的信息,请告诉我。我非常想要理解这一点,因为这是我的专业。

这是我开始的。如果它休假,我道歉......(这是第3版: - ))

    String date, month, day, year;
    Scanner input = new Scanner(System.in);
    Date birthday = new Date();
    SimpleDateFormat sdf = new SimpleDateFormat("EEEE");



    System.out.println("Please enter your date of birth as mm/dd/yyyy");
    date = input.next();

    birthday = java.sql.Date.valueOf(date);

    System.out.println("You were born on a " + sdf.format(date));

感谢所有!!

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

(回到我的CNAM课程)解决了问题:

Zeller.c:

#include <stdio.h>
#include <iostream>
using namespace std;
#define IVLD "Date pour Zeller invalide\n"
#define TRUE 1

// passage des parametres de la fonction() par valeurs
int Zeller(int day, int month, int year) {

    int dayOfWeek, adjustedMonth, yearInCentury, century;

    /* verification date mini "15 Octobre 1582" + jour, mois, annee valid */
    if ((day < 1 || day > 31) || (year < 1582) || (year == 1582 && month < 10) || (year == 1582 && month == 10 && day < 15)) {
        cout << IVLD;
        return 255;
    }

    yearInCentury = year % 100; century = year / 100;

    /* ajustage de la date pour que
     * Mars soit le mois 1 et fevrier le 12 */
    adjustedMonth = month - 2;
    if (adjustedMonth <= 0) {
        adjustedMonth += 12;
        --yearInCentury;
    }

    /* Congruence de Zeller
       Annum civilem necessario constare ex diebus integris ! (Christophorus Clavius 1537 - 1612) */
    dayOfWeek = ( ((int) (2.6 * adjustedMonth - 0.2) + day + yearInCentury + (int) (yearInCentury / 4) + (int) (century / 4) - 2 * century) % 7);

    switch(dayOfWeek) {
        case 0: cout << "dimanche\n";   break;
        case 1: cout << "lundi\n";      break;
        case 2: cout << "mardi\n";      break;
        case 3: cout << "mercredi\n";   break;
        case 4: cout << "jeudi\n";      break;
        case 5: cout << "vendredi\n";   break;
        case 6: cout << "samedi\n";     break;
        default: cout << "Calcul errone, merci de remonter le bug aupres du developpeur SVP\n"; return(255);
    }

    return(dayOfWeek);
}

该算法可以轻松移植到java =)

对不起法国噪音(但主要代码是英文)。