Как узнать какой сегодня день года по счёту Программирование


Версия для печати темы

Нажмите сюда для просмотра этой темы в оригинальном формате

Твой софтовый форум Программирование Как узнать какой сегодня день года по счёту

Автор: Wak 7.02.2008 - 22:34

Как узнать какой сегодня день года по счёту (1 января - первый, а 1 февраля - 32)? Есть варианты кроме "тупо складывать". Нужно учитывать год - високосный или нет.
Желательно на Java.

Автор: newmailqu 8.02.2008 - 15:30

есть с С, быть может есть и в java
http://opengroup.org/onlinepubs/007908799/xsh/time.h.html

Автор: Wak 8.02.2008 - 23:36

Да в С я и так не особо, а тут и описание на английском. Там чего-то про время... Хотя я ничего не понял. smile.gif

Автор: Soloton 11.02.2008 - 9:58

| У Вас нет прав для просмотра этого текста, пожалуйста, зарегистрируйтесь |


Google в помощь smile.gif

Автор: Monarhia 14.02.2008 - 21:11

strftime - в С++, насчёт Си хз, но помоему и в Си есть... почитай про неё (там как в php date(), можно задать любой формат)!

Автор: yah 14.02.2008 - 21:21

Цитата | Quote(newmailqu @ 8.02.2008 - 15:30)
есть с С, быть может есть и в java
http://opengroup.org/onlinepubs/007908799/xsh/time.h.html
*



Учи английский и смотри исходник time.h Вот тебе пример на С++
Code

#include <time.h>
#include <iostream>
using namespace std;
int main()
{
tm time;
_getsystime(&time);
cout<<time.tm_yday<<endl;
return 0;
}

Автор: KLUCHICK 14.02.2008 - 21:22

Мдя... а может призовём на помощь суперкомп Пентагона? biggrin.gif

Открываем "великолепный" продукт MS

В Microsoft Excel даты хранятся в виде последовательности порядковых номеров, что позволяет выполнять над ними вычисления. По умолчанию день 1 января 1900 г. имеет номер 1, а 1 января 2008 г. — 39 448, так как интервал между этими датами составляет 39 448 дней.

далее... используем функцию


ДАТАМЕС(нач_дата ;число_месяцев)

Нач_дата — начальная дата. Даты должны вводиться с использованием функции ДАТА или как результат других формул и функций. Например, для указания даты 23 мая 2008 г. следует воспользоваться выражением ДАТА(2008;5;23). Если даты вводятся как текст, это может привести к возникновению проблем.

Число_месяцев — количество месяцев до или после даты «нач_дата». Положительное значение аргумента «число_месяцев» означает будущие даты; отрицательное значение — прошедшие даты.

Далее можно нажать на кнопу Enter и любоваться полученным резултом wink.gif

Автор: Wak 15.02.2008 - 22:35

Monarhia, yah и KLUCHICK я же говорил

Цитата | Quote
Желательно на Java
. Просто мне это нужно для инет-странички.

Автор: walet 15.02.2008 - 23:43

Цитата | Quote(Wak @ 15.02.2008 - 23:35)
Monarhia, yah и KLUCHICK я же говорил
Цитата | Quote
Желательно на Java
. Просто мне это нужно для инет-странички.
*


А что проблема из примера на С++ перевести на JAVA?

Автор: yah 15.02.2008 - 23:55

Цитата | Quote(walet @ 15.02.2008 - 23:43)
А что проблема из примера на С++ перевести на JAVA?
*


Видимо - да =).
Но я с JAVA не работал, поэтому помочь не могу.

Автор: Wak 16.02.2008 - 15:12

Оказалось, что да.
Soloton, здесь вроде бы то что нужно:
http://www.gogsite.ucoz.ru/publ/2-1-0-18
Но уменя кривые руки. Компилятор ругается на ошибку сценария.
Напишите, пожалуйста, как это дело должно выглядеть.

Автор: KLUCHICK 16.02.2008 - 20:35

Ок. Думаю тебе поможет вот этот хелп. Тут все о операциях с датами в Java

| У Вас нет прав для просмотра этого текста, пожалуйста, зарегистрируйтесь |

Автор: Wak 17.02.2008 - 11:52

KLUCHICK, что-то я там не нашёл того, что мне нужно wacko.gif

Автор: Wak 19.02.2008 - 13:10

Сам не напишешь - нито тебе не напишет...
Вот то что мне было нужно:

Code
<script type=text/javascript>

now = new Date();   //
year = now.getYear();  // Присваиваем
month = now.getMonth()+1; // значения
day = now.getDate();  //
 
 // Определяем високостность года
  if (((((year % 4) == 0) && ((year % 100) != 0))
 || ((year % 400) == 0)))
 vsk = 1
 else vsk = 0;

 // Вычисляем порядковый номер дня    
 dayNumber = (month - 1) * 31 + day;
     if (month > 2)
     {
       if ((month == 3) || (month == 4))
         dayNumber = dayNumber - 3;
       else if ((month == 5) || (month == 6))
         dayNumber = dayNumber - 4;
       else if ((month == 7) || (month == 8) || (month == 9))
         dayNumber = dayNumber - 5;
       else if ((month == 10) || (month == 11))
         dayNumber = dayNumber - 6;
       else if (month == 12)
         dayNumber = dayNumber - 7;
     dayNumber = dayNumber + vsk;
       }

document.write("Сегодня " + dayNumber + " день года");

</SCRIPT>


Я так понял готовой функции нету.

Автор: yah 19.02.2008 - 16:28

Хмм.. а разве JAVA и JAVASCRIPT это одно и тоже? 0_ о


  Яндекс цитирование   Rambler's Top100