Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Работа с датами


Автор: clamp 16.10.2009, 13:28
Доброе время суток. 
Хотелось бы сразу оговориться в java не очень силен, поэтому возникают подобные вопросы.
Имеется текущая дата 2009-10-16 мне необходимо отнять 20 дней, чтобы получилось  2009-09-27. 
Примерно догадываюсь, как надо сделать нужно текущую дату перевести в миллисекунды, отнять необходимое количество дней в миллисекундах. Ответ преобразовать в дату. Вопрос как решить такую задачу ?
 smile  HELP/

Автор: Samotnik 16.10.2009, 13:50
Код

import java.util.Calendar;
import java.util.TimeZone;

public class Main {
    public static void main(String [] args)  
    {        
    Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT+02:00")); 
    System.out.println("Today: " + calendar.getTime());
       
    calendar.add(Calendar.DAY_OF_MONTH, -19); // не забывай, что нету 0 октября :)
    System.out.println("20 days before : " + calendar.getTime());    
    }
}

Автор: clamp 16.10.2009, 14:00
 smile  спасибо Samotnik, именно то что нужно . 

Автор: clamp 16.10.2009, 14:24
Вот еще вопросец. 
Почему когда я пытаюсь вывести 
Код

calendar.getTime().getYear()
 выводиться 109.
а 
Код

calendar.getTime().getDate()+" "+calendar.getTime().getMonth()
 
выводит правильно дату и месяц

Автор: Samotnik 16.10.2009, 14:30
Цитата(clamp @  16.10.2009,  14:24 Найти цитируемый пост)
выводиться 109.

а доки, кто читать будет ?
http://java.sun.com/j2se/1.4.2/docs/api/java/sql/Time.html#getYear%28%29

Добавлено через 9 минут и 14 секунд
Нужно взять год ?
Бери вот так
Код

System.out.println(Calendar.getInstance().get(Calendar.YEAR));

Автор: clamp 19.10.2009, 05:57
Samotnik,  в следующий раз будем читать  мануал smile 

Рахмет еще раз

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)