Добавление дней к дате вручную?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Добавление дней к дате вручную?

Сообщение Anonymous »

Здесь школьное домашнее задание.
Пример вывода должен быть таким:

Ввод дней: 1

Ввод месяцев: 1

Ввод года: 2012

Ввод добавленных дней: 61

Предполагая, что в феврале (29 дней в каждом году)

тогда вывод: 1 марта 2012 г.;

но вместо этого я получил 0 марта 2012 г.
мой код:

Код: Выделить всё

import java.util.Scanner;
public class NO3 {

public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);

System.out.print("Input days : ");
int days = sc.nextInt();

System.out.print("Input month : ");
int month = sc.nextInt();

System.out.print("Input year : ");
int year = sc.nextInt();

System.out.print("Input added days : ");
int addeddays = sc.nextInt();

System.out.print("Output :  ");
System.out.print(add(days,month,year,addeddays));
}

public static int add(int days,int month,int year,int addeddays)
{
int countermonth=0;

if(month==1)
{
if(days+addeddays>=31)
{
countermonth = (days+addeddays)/31;
month += countermonth;
days = days+addeddays - (countermonth*31);
System.out.print(days);
System.out.print("-");
}
}
else if(month==2)
{
if(days+addeddays>=29)
{
countermonth = (days+addeddays)/29;
month += countermonth;
days = days+addeddays - (countermonth*29);
System.out.print(days);
System.out.print("-");
}
}
else if(month==3)
{
if(days+addeddays>=31)
{
countermonth = (days+addeddays)/31;
month += countermonth;
days = days+addeddays - (countermonth*31);
System.out.print(days);
System.out.print("-");
}
}
else if(month==4)
{
if(days+addeddays>=30)
{
countermonth = (days+addeddays)/30;
month += countermonth;
days = days+addeddays - (countermonth*30);
System.out.print(days);
System.out.print("-");
}
}

else if(month==5)
{
if(days+addeddays>=31)
{
countermonth = (days+addeddays)/31;
month += countermonth;
days = days+addeddays - (countermonth*31);
System.out.print(days);
System.out.print("-");
}
}

else if(month==6)
{
if(days+addeddays>=30)
{
countermonth = (days+addeddays)/30;
month += countermonth;
days = days+addeddays - (countermonth*30);
System.out.print(days);
System.out.print("-");
}
}

else if(month==7)
{
if(days+addeddays>=31)
{
countermonth = (days+addeddays)/31;
month += countermonth;
days = days+addeddays - (countermonth*31);
System.out.print(days);
System.out.print("-");
}
}

else if(month==8)
{
if(days+addeddays>=31)
{
countermonth = (days+addeddays)/31;
month += countermonth;
days = days+addeddays - (countermonth*31);
System.out.print(days);
System.out.print("-");
}
}

else if(month==9)
{
if(days+addeddays>=30)
{
countermonth = (days+addeddays)/30;
month += countermonth;
days = days+addeddays - (countermonth*30);
System.out.print(days);
System.out.print("-");
}
}

else if(month==10)
{
if(days+addeddays>=31)
{
countermonth = (days+addeddays)/31;
month += countermonth;
days = days+addeddays - (countermonth*31);
System.out.print(days);
System.out.print("-");
}
}

else if(month==11)
{
if(days+addeddays>=30)
{
countermonth = (days+addeddays)/30;
month += countermonth;
days = days+addeddays -  (countermonth*30);
System.out.print(days);
System.out.print("-");
}
}

else if(month==12)
{
if(days+addeddays>=31)
{
countermonth = (days+addeddays)/31;
month += countermonth;
days = days+addeddays - (countermonth*31);
System.out.print(days);
System.out.print("-");
}
}

if(month>12)
{
int counteryear = month/12;
month = month - (counteryear*12);
year +=counteryear;
}

if(month==1)
{
System.out.print("January");
}
else if(month==2)
{
System.out.print("February");
}
else if(month==3)
{
System.out.print("March");
}
else if(month==4)
{
System.out.print("April");
}
else if(month==5)
{
System.out.print("May");
}
else if(month==6)
{
System.out.print("June");
}
else if(month==7)
{
System.out.print("July");
}
else if(month==8)
{
System.out.print("August");
}
else if(month==9)
{
System.out.print("September");
}
else if(month==10)
{
System.out.print("October");
}
else if(month==11)
{
System.out.print("November");
}
else if(month==12)
{
System.out.print("December");
}
System.out.print("-");
//System.out.println("");

return year;
}

}
Я все еще изучаю Java и знаю, что это очень неэффективно, поэтому может ли кто-нибудь показать мне или научить правильному, но эффективному решению? (в этом вопросе используется только метод, а не класс Java, такой как дата) Заранее спасибо.

Подробнее здесь: https://stackoverflow.com/questions/335 ... ys-to-date
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»