Java程序:输入某年某月某日,判断该天星期几,是这一年的第几天.

Java程序:输入某年某月某日,判断该天星期几,是这一年的第几天.,第1张

输入某年某月某日,判断这一天是这一年的第几天 程序分析:以3月5日为例,应该先把前两个月的加起来, 然后再加上5天即本年的第几天,特殊情况, 闰年且输入月份大于3时需考虑多加一天。

java是一门面向对象的编程语言。

java语言具有功能强大和简单易用两个特征,具有简单性、面向对象、分布式等特点,可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。

import javautilCalendar;
public class Du {
public static void main(String[] args) {
String date = "2011-01-12";

int[] daysInMonth = getMonthDays(date);

for(int value: daysInMonth){
Systemoutprint(value + " ");
}
}
private static int[] getMonthDays(String date) {
Calendar calendar = CalendargetInstance();
calendarset(CalendarYEAR, IntegerparseInt(datesubstring(0, 4)));
calendarset(CalendarMONTH, IntegerparseInt(datesubstring(5, 7)) -1);
int maxDay = calendargetActualMaximum(CalendarDAY_OF_MONTH);

int[] days = new int[maxDay];

for(int i = 1; i <= maxDay; i++){
days[i-1] = i;
}

return days;
}
}
-----------------
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

程序就自己写吧,告诉你一个思路。先判断月份是否为2月,如果是的话判断年是否为闰年,若为闰年2月为29天,若不是闰年为28天;如果要判断的月份不是2月,判断其是否为1,3,5,7,8,10,12,若是其中的一个则为31天,剩余的月份为30天

package testString;

import javatextParseException;

import javatextSimpleDateFormat;

import javautilDate;

public class aaaa {

public static void main(String[] args) throws ParseException {

String date1="2003-03-12";

String date2="2005-01-12";

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-mm-dd");

long l_date1=sdfparse(date1)getTime();

long l_date2=sdfparse(date2)getTime();

int day=(int)((l_date2-l_date1)/(1000606024));

Systemoutprintln(day);

}

}

package Day02;
import javautilScanner;
public class YearandMonth {
public static void main(String[] args) {
Scanner scan = new Scanner(Systemin);
Systemoutprintln("请输入年份>");
int year = scannextInt();
Systemoutprintln("请输入月份");
int month = scannextInt();
if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12){
Systemoutprintln("该月份有31天");
}else if (month == 2){
if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0){
Systemoutprintln("该月份有29天");
}else{
Systemoutprintln("该月份有28天");
}
}else if (month == 4 || month == 6 || month == 9 || month == 11){
Systemoutprintln("该月份有30天");
}else{
Systemoutprintln("没有该月份");
}
}
}

给个类似的代码例子看看,自己修改下里面的几行代码就可以了
import javatextParseException;
import javatextSimpleDateFormat;
import javautilCalendar;
import javautilGregorianCalendar;
/得到当前月的前几个月的方法/
public class Timecs {
private static String[] hzYearMonth = new String[6];// 汉字格式日期
private static String[] zcYc = new String[6];//
private static String[] zcYd = new String[6];//
public static void getYearMonth() {
int leng = 0;
/ 这里的i初始值,你可以根据自己的需要来改变,也可以变成变量 /
for (int i = -6; i < 0; i++) {
Calendar calendar = CalendargetInstance();
/
i是正数就是后i月,i是负数就是前i月,i是几就加几月,这里的例子是前6个月
/
calendaradd(CalendarDATE, i); // 得到某一天
calendaradd(CalendarMONTH, i); // 得到某一个月
int year = calendarget(CalendarYEAR);
int month = calendarget(CalendarMONTH) + 1;// 这里月要加1
/ 下面的是根据我自己需要用到的日期格式加的一些小处理 /
String dateTime = year + "-" + month;
dateTime += "-" + getDayCount(dateTime);
hzYearMonth[leng] = year + "年" + month + "月";
zcYc[leng] = year + "-" + month + "-1";
zcYd[leng] = dateTime;
Systemoutprintln(hzYearMonth[leng] + "--" + zcYc[leng]
+ "--" + zcYd[leng] + " 当月天数" + getDayCount(dateTime));
leng++;
}
}
/ 给一个yyyy-MM(2012-01)日期格式,判断出所传月一共多少天 /
public static int getDayCount(String dateTime) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
/
GregorianCalendar 是 Calendar 的一个具体子类, 提供了世界上大多数国家/地区使用的标准日历系统。
/
Calendar calendar = new GregorianCalendar();
try {
/ 使用给定的 Date 设置此 Calendar 的时间 /
calendarsetTime(sdfparse(dateTime));
} catch (ParseException e) {
// TODO Auto-generated catch block
eprintStackTrace();
}
/ 返回此日历字段可能具有的最大值。DAY_OF_MONTH 用于指示一个月的某天 /
int day = calendargetActualMaximum(CalendarDAY_OF_MONTH);
return day;
}
public static void main(String[] args) throws ParseException {
getYearMonth();
}
}


import javautilCalendar;

import javautilScanner;

public class replacenbsp {

/

@param args

/

public static void main(String[] args) {

Scanner scanner = new Scanner(Systemin);

Systemoutprint("请输入日期,格式为yyyy-MM: ");

String s = scannernextLine();

if(!smatches("\\d{4}-\\d{2}")){

Systemoutprintln("日期格式输入错误");

Systemexit(0);

}

int count = 0;

int month = IntegerparseInt(ssubstring(5, 7));

Calendar cal = CalendargetInstance();

calset(CalendarYEAR, IntegerparseInt(ssubstring(0, 4)));

calset(CalendarMONTH,  month - 1);

calset(CalendarDATE, 1);

while(calget(CalendarMONTH) < month){

int day = calget(CalendarDAY_OF_WEEK);

if(!(day == CalendarSUNDAY || day == CalendarSATURDAY)){

count++;

}

caladd(CalendarDATE, 1);

}

Systemoutprintln(count);

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/10549955.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-09
下一篇 2023-05-09

发表评论

登录后才能评论

评论列表(0条)

保存