powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как получить и отформатировать разницу двух дат в VBScript
52 сообщений из 52, показаны все 3 страниц
Как получить и отформатировать разницу двух дат в VBScript
    #37810623
Човайохоя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите получить и отформатировать разницу двух дат в VBScript

Например, от 24.05.2012 отнять 11.04.2009 и результат вывести в таком виде:
3 года, 1 месяц, 13 дней
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37810688
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 05/24/2012 10:04 PM, Човайохоя wrote:
> Автор: Човайохоя
> Помогите получить и отформатировать разницу двух дат в VBScript
>
> Например, от 24.05.2012 отнять 11.04.2009 и результат вывести в таком виде:
> 3 года, 1 месяц, 13 дней
Недавно мусолили ...
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37810761
Човайохоя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ex_Soft,

зачем мне на C++ ?
Я уже делал это на Delphi как раз 11.04.2009.
Хочу сразу на VBScript. Наверняка есть готовое.
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37811144
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Човайохоязачем мне на C++ ?
/me думает: я так и думал...
Ну... Если Вы, таки, удосужились, хотя бы по диагонали, ознакомиться с вышеуказанным тынцьем, то поняли бы, что главная проблема не в реализации на уже конкретном языке, а в алгоритме.
ЧовайохояЯ уже делал это на Delphi как раз 11.04.2009.

Ну и какая же тогда у Вас разница между:
- 05.03.2011 и 01.02.2011
- 05.03.2012 и 01.02.2012
?
ЧовайохояНаверняка есть готовое.
В свете выше сказанного - наврядли, IMHO... Или же будет нечто усредненное а-ля Борманского:
Код: javascript
1.
2.
3.
4.
function MonthSpan(ANow,AThen)
{
	return(DaySpan(ANow,AThen)/30.4375 /* ApproxDaysPerMonth */);
}
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37811236
Човайохоя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо, что откликнулись.

про проблему с високосными годами позабыл :)
ну мне большая точность ни к чему, для себя делаю.

Пробую свой код из Delphi перевести на VBScript. Алгоритм очень простой, но не получается. Может поможете ?
вот код на Delphi
Код: pascal
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.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
type
  TValueRelationship = -1..1;

function GetTimeDelta(BeginDate, EndDate: TDateTime;
  var Years, Months, Days: DWORD): TValueRelationship;
var
  Date1, Date2, TempDate : TDate;
begin
  Result := CompareDate(BeginDate, EndDate);
  if Result > 0 then
  begin
    Date1 := EndDate;
    Date2 := BeginDate;
  end
  else 
  begin
    Date1 := BeginDate;
    Date2 := EndDate;
  end;

  Years := 0;
  repeat
      Inc(Years);
      TempDate := Date1;
      Date1 := IncYear(Date1);
  until CompareDate(Date1, Date2) > 0;
  Dec(Years);
  Date1 := TempDate;

  Months := 0;
  repeat
      Inc(Months);
      TempDate := Date1;
      Date1 := IncMonth(Date1);
  until CompareDate(Date1, Date2) > 0;
  Dec(Months);
  Date1 := TempDate;

  Days := 0;
  repeat
      Inc(Days);
      TempDate := Date1;
      Date1 := IncDay(Date1);
  until CompareDate(Date1, Date2) > 0;
  Dec(Days);
end;


вот, что получилось на VBScript (пробовал по разному, это текущая нерабочая версия)
Код: vbnet
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.
32.
33.
Function GetExpires(A, B)
Dim Y, M, D
Dim C

  If A >= B Then
    GetExpires = "Истек"
	Exit Function
  End If
  
  C = A
  Y = 0
  Do While Year(C) < Year(B)
    C = DateAdd("yyyy", 1, C)
    Y = Y + 1
  Loop 
  
  C = A
  M = 0
  Do While Month(C) < Month(B)
    C = DateAdd("m", 1, C)
    M = M + 1
  Loop 
  
  C = A
  D = 0
  Do While Day(C) < Day(B)
    C = DateAdd("d", 1, C)
    D = D + 1
  Loop

  
  GetExpires = Y & " г. " & M & " м. " & D & " д. " 
End Function


...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37811275
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: javascript
1.
2.
3.
4.
5.
6.
<html>
<script type="text/javascript">
	var dd=new Date(new Date(2012,04,24).getTime() - new Date(2009,03,11).getTime());
	alert(dd.getFullYear()-1970+" года "+dd.getMonth()+" месяцев "+dd.getDate()+" дней");
</script>
</html>


ПС. Месяц всегда на единицу меньше. Поетому пишем Date(2012,04,24), а не Date(2012,05,24). А уж склонение по падежам - совсем другое дело.
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37811326
Човайохоя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ShSerge,

javascript не подойдет, т.к. вычисления происходят на сервере и уже используется VBScript.

ShSerge
Код: javascript
1.
...alert(dd.getFullYear()-1970+" года...


Не подскажите в VBScript Date с какой даты начинается отсчет ?
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37811347
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Човайохояjavascript не подойдет, т.к. вычисления происходят на сервере и уже используется VBScript
language="javascript" ?
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37811363
Човайохоя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ex_SoftЧовайохояjavascript не подойдет, т.к. вычисления происходят на сервере и уже используется VBScript
language="javascript" ?У меня странички на ASP - там вроде нельзя два разных языка использовать ?
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37811379
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Човайохоятам вроде нельзя два разных языка использовать ?
Кто Вам это сказал? Фамилия?
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37811519
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ex_SoftЧовайохоятам вроде нельзя два разных языка использовать ?
Кто Вам это сказал? Фамилия?
Да и переписать две строчки с яваскрипта на вбскрипте не особо-то тяжело.
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37811528
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ах, да. Забыл сказать, что нолик впереди не надо писать, а то циферки будут восприняты, как восьмеричные, что в данном конкретном случае - пофигу.
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37811563
Човайохоя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ex_SoftЧовайохоятам вроде нельзя два разных языка использовать ?
Кто Вам это сказал? Фамилия?В любом случае я этой херней заниматься не собираюсь (каждый раз в цикле переключать язык)
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37811565
Човайохоя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ShSergeEx_Softпропущено...

Кто Вам это сказал? Фамилия?
Да и переписать две строчки с яваскрипта на вбскрипте не особо-то тяжело.я для этого и спросил авторНе подскажите в VBScript Date с какой даты начинается отсчет ?
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37811610
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Човайохоя,

А не посмотреть, что с дптой, которая нолик?
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37811732
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Човайохоякаждый раз в цикле переключать язык
Гы... И как это Вы себе представляете: васиковский цикл с JS'овскими внутренностями?
Круть...
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37811749
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Човайохоякаждый раз в цикле переключать языкЯзык задается либо глобально по умолчанию для всего сайта, либо для конкретного asp-файла.
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37811759
Човайохоя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ex_SoftЧовайохоякаждый раз в цикле переключать язык
Гы... И как это Вы себе представляете: васиковский цикл с JS'овскими внутренностями?
Круть...
а помоему вы это сами советовали
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37811763
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyЯзык задается либо глобально по умолчанию для всего сайта, либо для конкретного asp-файла.
Доступа к телу сейчас, с сожалению, нет, но в одно время мне достался проект где внутри одного ASP-файла, каж-ся, был и васик и JS.
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37811765
Човайохоя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ex_SoftЧовайохоятам вроде нельзя два разных языка использовать ?
Кто Вам это сказал? Фамилия?

AntonariyЧовайохоякаждый раз в цикле переключать языкЯзык задается либо глобально по умолчанию для всего сайта, либо для конкретного asp-файла.
как Ваша фамилия ?
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37811777
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Човайохоя,

Да переведите Вы нафиг, что я написал на яваскрипте в вбскрипт. Делов-то. Что мне этим заняться? На несколько минут работы!
ПС. Не умею я писать на вбскрипте. Но, если надо, напишу.
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37811781
Човайохоя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
шутка. посмотрите лучше ошибки в скрипте 12613772 пожалуйста
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37811818
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyЯзык задается либо глобально по умолчанию для всего сайта, либо для конкретного asp-файла.
Да - беру свои слова обратно:
http://www.w3schools.com/asp/asp_syntax.asp Using JavaScript in ASP

To set JavaScript as the default scripting language for a particular page you must insert a language specification at the top of the page...

Был винегрет страниц на васике и JS'е, но не внутри страниц...
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37811915
Човайохоя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ShSergeЧовайохоя,

Да переведите Вы нафиг, что я написал на яваскрипте в вбскрипт. Делов-то. Что мне этим заняться? На несколько минут работы!
ПС. Не умею я писать на вбскрипте. Но, если надо, напишу.А зачем тогда зашли сюда ? в теме же написано VBScript. На нотации потратили времени больше, чем несколько минут.

Я начал гуглить, экспириментировать с переключением языка, гадаю куда директиву вставлять.
Не доверяю я больше тому, что Вы написали
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37811953
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Човайохоя,

На "слабò" не ведусь.
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37811971
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ex_SoftAntonariyЯзык задается либо глобально по умолчанию для всего сайта, либо для конкретного asp-файла.
Доступа к телу сейчас, с сожалению, нет, но в одно время мне достался проект где внутри одного ASP-файла, каж-ся, был и васик и JS.Скорее всего это был клиентский js. При инициализации скриптового движка (IActiveScript) указывается конкретный язык, и в последствии его поменять невозможно.
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37811984
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поздновато я "опубликовать" нажал...)
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37812003
Човайохоя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ShSergeЧовайохоя,

На "слабò" не ведусь. Я понимаю, Все мне рады помочь, но не получается :)
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37812006
Човайохоя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а скрипт никто не смотрел 12613772 ?
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37812007
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyСкорее всего это был клиентский js
Нет - серверный... Просто отложился в голове тот зверинец ASP (VB && JS) + ASP.NET - я его надолго запомнил
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37812015
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Човайохояа скрипт никто не смотрел 12613772 ?
Посмотрел. Навскидку - ничего космического. В чем его "нерабочесть"?
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37812023
Човайохоя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
неверные результаты
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37812047
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тынць -> тынць
http://www.cpearson.com/excel/DateTimeVBA.htm Calculating Age In VBA

The following function will compute a person's age, returning a string such as "45 years 10 months 18 days".
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Function Age(Date1 As Date, Date2 As Date) As String
    Dim Y As Integer
    Dim M As Integer
    Dim D As Integer
    Dim Temp1 As Date
    Temp1 = DateSerial(Year(Date2), Month(Date1), Day(Date1))
    Y = Year(Date2) - Year(Date1) + (Temp1 > Date2)
    M = Month(Date2) - Month(Date1) - (12 * (Temp1 > Date2))
    D = Day(Date2) - Day(Date1)
    If D < 0 Then
        M = M - 1
        D = Day(DateSerial(Year(Date2), Month(Date2) + 1, 0)) + D + 1
    End If
    Age = Y & " years " & M & " months " & D & " days"
End Function



?
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37812072
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
AntonariyEx_Softпропущено...

Доступа к телу сейчас, с сожалению, нет, но в одно время мне достался проект где внутри одного ASP-файла, каж-ся, был и васик и JS.Скорее всего это был клиентский js. При инициализации скриптового движка (IActiveScript) указывается конкретный язык, и в последствии его поменять невозможно.Фигня
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<html>
 <body>
<script runat="server" language="JScript">
 var a = new Date(2009,1,31);
 response.Write(a);
</script>

 <%
  toDate=CDate("2009/01/31")
  response.write(toDate)
 %>
 </body>
 </html> 
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37812116
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Типо 1:1 (Ваш вариант 12613772 и этот 12616642 )
Код: vbnet
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.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
<html>
	<head>
		<meta charset="utf-8"/>
		<title>Test ASP</title>
	</head>
	<body>
<%
Function GetExpires(A, B)
Dim Y, M, D
Dim C

  If A >= B Then
    GetExpires = "Истек"
	Exit Function
  End If
  
  C = A
  Y = 0
  Do While Year(C) < Year(B)
    C = DateAdd("yyyy", 1, C)
    Y = Y + 1
  Loop 
  
  C = A
  M = 0
  Do While Month(C) < Month(B)
    C = DateAdd("m", 1, C)
    M = M + 1
  Loop 
  
  C = A
  D = 0
  Do While Day(C) < Day(B)
    C = DateAdd("d", 1, C)
    D = D + 1
  Loop

  
  GetExpires = Y & " г. " & M & " м. " & D & " д. " 
End Function

Function Age(Date1, Date2)
    Dim Y
    Dim M
    Dim D
    Dim Temp1
    Temp1 = DateSerial(Year(Date2), Month(Date1), Day(Date1))
    Y = Year(Date2) - Year(Date1) + (Temp1 > Date2)
    M = Month(Date2) - Month(Date1) - (12 * (Temp1 > Date2))
    D = Day(Date2) - Day(Date1)
    If D < 0 Then
        M = M - 1
        D = Day(DateSerial(Year(Date2), Month(Date2) + 1, 0)) + D + 1
    End If
    Age = Y & " years " & M & " months " & D & " days"
End Function

Dim b
Dim e

b=#1/1/1900#
e=#29/2/2012#
response.write(b)
response.write("<br/>")
response.write(e)
response.write("<br/>")
response.write(GetExpires(b, e))
response.write("<br/>")
response.write(Age(b, e))
%>
	</body>
</html>
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37812150
Човайохоя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ex_Soft,

спасибо, уже что-то

Ex_SoftТипо 1:1но иногда (с некоторыми датами) значение неверное
например с этими:
25.05.2012 и 07.12.2012
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37812178
Човайохоя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и с функцией Age из 12616642 с некоторыми датами результат отличается от результата функции на Delphi на 2 дня, а с некоторыми сопадает :(
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37812185
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Човайохояно иногда (с некоторыми датами) значение неверное
например с этими:
25.05.2012 и 07.12.2012
/me вспоминает:
Ex_Softглавная проблема не в реализации на уже конкретном языке, а в алгоритме

Неверное на чей взгляд? А сколько по Вашему д.б.? BTW, ознакомтесь как работает DateAdd
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37812194
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Човайохояи с функцией Age из 12616642 с некоторыми датами результат отличается от результата функции на Delphi на 2 дня, а с некоторыми сопадает :(
Я ж Вам показывал:
Ex_Softбудет нечто усредненное а-ля Борманского:
Код: sql
1.
2.
3.
4.
function MonthSpan(ANow,AThen)
{
	return(DaySpan(ANow,AThen)/30.4375 /* ApproxDaysPerMonth */);
}



посмотрите исходники VCL - я ж оттуда сие на JS'е "цицировал"...
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37812232
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
Что-то мне кажется, что в Function Age вместо строчки
D = Day(DateSerial(Year(Date2), Month(Date2) + 1, 0)) + D + 1
надо
D = Day(DateSerial(Year(Date2), Month(Date2), 0)) + D

а то неадекватные результаты получаются скажем для 30.04.2012 - 01.05.2012 или 31.01.12 - 01.02.2012
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37812237
ART-CODE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поиграйтесь вот с этим:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Dim DateTest, ReturnStr
DateTest="01.01.2011"


ReturnStr=DateDiff("yyyy",DateTest,Now)  & " y " & DateDiff("m",DateTest,Now)  & " m " & DateDiff("d",DateTest,Now)  & " d "
MsgBox ReturnStr

MsgBox CDate(DateDiff("d",DateTest,Now))
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37812324
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
?Фигня
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<html>
 <body>
<script runat="server" language="JScript">
 var a = new Date(2009,1,31);
 response.Write(a);
</script>

 <%
  toDate=CDate("2009/01/31")
  response.write(toDate)
 %>
 </body>
 </html> 

Так можно. Это разные контексты. Наверное и так можно:
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<html>
 <body>
<script runat="server" language="JScript">
 var a = new Date(2009,1,31);
 response.Write(a);
</script>

<script runat="server" language="VBScript">
  toDate=CDate("2009/01/31")
  response.write(toDate)
</script>
 </body>
 </html> 

Но тоже контексты будут разные.

Так нельзя:
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
<%
 var a = new Date(2009,1,31);
 response.Write(a);
%>

 <%
  toDate=CDate("2009/01/31")
  response.write(toDate)
 %>
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37812352
ART-CODE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
5.
Dim DateTest, ReturnStr
DateTest="10.02.2010"
DateTest=CDate(DateDiff("d",DateTest,Now))
ReturnStr=CStr(CInt(mid(DateTest,7,4))-1900)  & " y " &  CStr(CInt(mid(DateTest,4,2)))  & " m " &  CStr(CInt(mid(DateTest,1,2))) & " d "
MsgBox ReturnStr
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37812360
ART-CODE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
ReturnStr=CStr(CInt(YEAR(DateTest))-1900)  & " y " &  CStr(CInt(MONTH(DateTest)))  & " m " &  CStr(CInt(DAY(DateTest))) & " d "
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37812387
Човайохоя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ART-CODE,

я так пробовал, и Ваш код попробовал - результат неверный
15.07.2012 - 25.04.2012 = 0 y 2 m 19 d
а должно быть 0 y 1 m 20 d
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37812405
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЧовайохояART-CODE,

я так пробовал, и Ваш код попробовал - результат неверный
15.07.2012 - 25.04.2012 = 0 y 2 m 19 d
а должно быть 0 y 1 m 20 dДа ну? DateDiff дает 81 день, а это всяко больше двух месяцев.

Впрочем у меня этот способ для этих дат показал 0y 3m 21d.
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37812412
Човайохоя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Antonariy,

извиняюсь, я ошибся
15.07.2012 - 25. 05 .2012 = 0 y 2 m 19 d
а должно быть 0 y 1 m 20 d
так что всё равно не правильно


сейчас я пытаюсь так:

Код: vbnet
1.
2.
3.
4.
5.
6.
Function Age2(A, B)
  Dim D
  D = DateDiff("d", A, B)
  D = DateAdd("yyyy", -1900, D)
  Age2 = Year(D) & " y " & Month(D) & " m " & Day(D) & " d "
End Function


но почему-то не работает если отрицательное число
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37812418
Човайохоя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
поправка D = DateAdd("yyyy", -1900 , D)

AntonariyВпрочем у меня этот способ для этих дат показал 0y 3m 21d.если 25. 04 .2012, то у меня также
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37812432
Човайохоя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
если -1800 то работает, если хоть на 1 больше (-1801), то функция не возвращает результат
хотя какая разница, месяц и год 1х неправильные
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37812438
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Човайохоя15.07.2012 - 25. 05 .2012 = 0 y 2 m 19 d
а должно быть 0 y 1 m 20 d2 потому что нумерация месяцев с 1. Нужно 1 отнимать.

19 потому что 31 день в январе. И тут нужно подумать: допустим начало периода в середине одного месяца, конец в середине следующего, длина периода 31 день. Сколько же прошло, 31 день или 1 месяц и 1 день?

И все равно в феврале 1900 года было 28 дней, так что високосные года пролетают.
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37812458
Човайохоя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В 12613772 я приводил функцию на делфи, ей по идее пофиг какой год. Помогите довести до ума ее аналог на VBScript
...
Рейтинг: 0 / 0
Как получить и отформатировать разницу двух дат в VBScript
    #37812610
ART-CODE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, я понял:
там в цикле - к меньшей дате
последовательно прибавляют год, месяц, день,
пока не сравняется с большей датой,
вот и результат.

Идея ясна, осталось только реализовать. :)
...
Рейтинг: 0 / 0
52 сообщений из 52, показаны все 3 страниц
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как получить и отформатировать разницу двух дат в VBScript
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]