Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Определение последнего числа масяца (http://forum.oszone.net/showthread.php?t=204690)

TERMINAL 13-04-2011 17:00 1657437

Определение последнего числа масяца
 
Добрый день !
Помогите определить последнее число текущего месяца, т.е. 31 или 30 или вообще 28-29.
Заранее спс.

ferget 13-04-2011 22:45 1657686

не понятен вопрос
число дней в месяце постоянно каждый год, ну кроме февраля
так что switch+ проверка на високосный

madmasles 13-04-2011 23:37 1657738

TERMINAL,
Код:

$iLastDay = _Last_Day_Month()
MsgBox(64, @error, $iLastDay)

Func _Last_Day_Month($i_Month = @MON, $i_Year = @YEAR)
    Local $a_LastDay[13] = [12, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], $i_LastDay
    $i_Month = Int($i_Month)
    $i_Year = Int($i_Year)
    If $i_Month < 1 Or $i_Month > 12 Or $i_Year < 0 Then Return SetError(1, 0, -1)
    $i_LastDay = $a_LastDay[$i_Month]
    If $i_Month = 2 Then
        If Not Mod($i_Year, 4) Then
            $i_LastDay += 1
        EndIf
    EndIf
    Return SetError(0, 0, $i_LastDay)
EndFunc  ;==>_Last_Day_Month


Creat0R 14-04-2011 00:37 1657781

madmasles,
А зачем велосипед изобретать, есть же _DateDaysInMonth, пример из справки:

Код:

#include <Date.au3>

$iDays = _DateDaysInMonth( @YEAR,@MON )
MsgBox( 4096, "Days in Month", "This month has " & String( $iDays ) & " days in it." )


madmasles 14-04-2011 01:26 1657811

Цитата:

Цитата Creat0R
А зачем велосипед изобретать, есть же _DateDaysInMonth »

А в ней ограничение на год до 9999 года. Вдруг TERMINAL захочет узнать про 10000 год и дальше? :)

Я просто забыл про нее, когда-то ведь ее использовал... склероз.

Creat0R 14-04-2011 02:29 1657827

Цитата:

Цитата madmasles
А в ней ограничение на год до 9999 года. Вдруг TERMINAL захочет узнать про 10000 год и дальше? »

К этому году уже будет перерасчёт календаря, и числа могут смещаться, т.ч ограничений никаких нет.

Цитата:

Цитата madmasles
Я просто забыл про нее »

Ну обычно прежде чем написать какую то функцию, не помешает просмотреть список готовых функций на данную тему в справке (можно и в SciTE набрать _Date а дальше появится список доступных функций).

TERMINAL 14-04-2011 09:39 1657950

Цитата:

Цитата madmasles
А в ней ограничение на год до 9999 года. Вдруг TERMINAL захочет узнать про 10000 год и дальше? »

)) Спасибо, но я столько не проживу, тем более что задача была поставлена на ТЕКУЩИЙ МЕСЯЦ.
Цитата:

Цитата Creat0R
Ну обычно прежде чем написать какую то функцию, не помешает просмотреть список готовых функций на данную тему в справке (можно и в SciTE набрать _Date а дальше появится список доступных функций). »

Как бы это относится и ко мне, но потерял русское описание новой версии Autiit, которое раньше давал madmasles, поэтому после изобретений велосипедов и отсутствия данной функции в старой справке решил задать вопрос на форуме, которой будет полезен не только мне. Если не тяжело, дайте плз ссылочку на последнее русское описание. Всем спс.

madmasles 14-04-2011 11:58 1658063

Цитата:

Цитата TERMINAL
потерял русское описание новой версии Autiit »

Если вы имеете в виду эту тему, то она самая первая закрепленная тема, только там нет описаний UDF функций.
Цитата:

Цитата TERMINAL
но я столько не проживу »

Я тоже, но мне принципиально важно знать, в какой день недели, исходя из сегодняшнего исчисления, мои потомки будут праздновать мой день рождения в 12011 году. :teeth:

TERMINAL 14-04-2011 19:27 1658429

Цитата:

Цитата madmasles
Если вы имеете в виду эту тему, то она самая первая закрепленная тема, только там нет описаний UDF функций. »

Не не эту тему имел ввиду, ну может будет свободное время то порыскаю в поисках самого описания и описаний UDF функций...


Время: 02:09.

Время: 02:09.
© OSzone.net 2001-