输入某年某月某日,判断这一天是这一年的第几天 程序分析:以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);
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)