1 Востаннє редагувалося Chemist-i (04.04.2015 13:19:49)

Тема: [AutoIt3, Source] LifeTimeVisual by Chemist

Так як мій блоґ тимчасово не працює, опублікую тут.

Короткий опис
Скрипт показує, грубо кажучи, скільки Вам жити сі лишило. Ідея прийшла після перегляду Блоґа одного кібера.

Вхідні дані (параметри командного рядка), це 3 параметра:

-BD - Рік Вашого народження;
-BM - Місяць Вашого народження;
-avgLifeTime - Середня тривалість життя для Вашого (регіону/статі/способу життя);

Приклад запуску:

LifeTimeVisual.exe -BD 1988 -BM 9 -avgLifeTime 65
code
; April 3, 2015
; Author Chemist, chemist.org.ua, license GNU GPL v3
; Version 1.02

#pragma compile(UPX, true)

#include <GUIConstantsEx.au3>


;Settings
$delimeterZero = ' '
$delimeterEnd = 'X'
$delimeterFree = '.'

;Start data
$startDateYear = 1988
$startDateMonth = 9
$avgLifeTime = 65

$cmdParamCount = Int($CmdLine[0]) ;to integer
if ($cmdParamCount > 0) Then
    for $i=0 to $cmdParamCount-1
      if $CmdLine[$i] = "-BD" Then ;Birth date
         $startDateYear = Int($CmdLine[$i+1])
      EndIf

      if $CmdLine[$i] = "-BM" Then
         $startDateMonth = Int($CmdLine[$i+1])
      EndIf

      if $CmdLine[$i] = "-avgLifeTime" Then
         $avgLifeTime = int($CmdLine[$i+1]);
      EndIf
   Next
EndIf


;Initialization variables
$txt = "";
$EndedMonth = 0;
$FreeMonth = 0;
$delimeterX = $delimeterZero

$startDateYearBlock = int($startDateYear/5)*5


;entry

$txt &= "Birth date = " & $startDateYear & @CRLF
$txt &= "Birth month = " & $startDateMonth & @CRLF
$txt &= "Average life time = " & $avgLifeTime & @CRLF
$txt &= @CRLF

for $j = 1 to $avgLifeTime + 5
    for $i = 1 to 12
        if ($j*12+$i > ($avgLifeTime+($startDateYear - $startDateYearBlock )+1)*12+($startDateMonth-1)) Then ;??? Simplificate it, Chemist
            $delimeterX = $delimeterZero
        ElseIf ((($startDateYearBlock+$j)*12+$i) >= @Year*12+@mon) Then
            $delimeterX = $delimeterFree
        elseif (((($startDateYearBlock+$j)*12+$i)) >= ($startDateYear+1)*12+$startDateMonth) Then ;??? Simplificate it, Chemist
            $delimeterX = $delimeterEnd
        EndIf

        $txt = $txt & $delimeterX

        if $delimeterX = $delimeterEnd Then
            $EndedMonth += 1;
        elseif $delimeterX = $delimeterFree Then
            $FreeMonth += 1;
        EndIf
    Next

    $txt = $txt & ' ';

    if mod($j, 5) = 0 Then
        $year = String($startDateYearBlock+($j))
        $txt = $txt & $year & @CRLF;

        if (mod($j, 5*5) = 0) Then
            $txt = $txt & @CRLF;
        EndIf
    EndIf
Next

$txt &= @CRLF
$txt &= "[" &$EndedMonth& "/" &$FreeMonth& "] of " &$EndedMonth+$FreeMonth &  " " & @CRLF


consoleWrite($txt);

GUICreate("My GUI", 600, 400) ; will create a dialog box that when displayed is centered

$edit = GUICtrlCreateEdit($txt, 10, 10, 600-20, 400-20)
$sFont = "Lucida Console"
GUICtrlSetFont($edit, 9, 400, 0, $sFont)

GUISetState(@SW_SHOW) ; will display an empty dialog box with a combo control with focus on
; Loop until the user exits.
While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            ExitLoop
    EndSwitch
WEnd
Розрахунок для мене
Birth date = 1988
Birth month = 9
Average life time = 65

                                               XXXX XXXXXXXXXXXX 1990
XXXXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXX 1995
XXXXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXX 2000
XXXXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXX 2005
XXXXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXX 2010

XXXXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXX XXX......... 2015
............ ............ ............ ............ ............ 2020
............ ............ ............ ............ ............ 2025
............ ............ ............ ............ ............ 2030
............ ............ ............ ............ ............ 2035

............ ............ ............ ............ ............ 2040
............ ............ ............ ............ ............ 2045
............ ............ ............ ............ ............ 2050
............ ............ ............ ........                  2055

[307/473] of 780 
Post's attachments

LifeTimeVisual_1.02.zip 343.31 kb, 204 downloads since 2015-04-04 

Подякували: 0xDADA11C7, bunyk2

2

Re: [AutoIt3, Source] LifeTimeVisual by Chemist

Дякуємо за ваш внесок, але розділ інші мови стосуються програмування, а не мови дописів. Окрім того редагувати код проекта для передачі даних це вершина індусії, останні залишки якої подолали в 70-х роках, коли остаточно відмовилися від перфокарт в якості пристрою введення невеликої кількості даних, а замість них підключили термінал.

3

Re: [AutoIt3, Source] LifeTimeVisual by Chemist

0xDADA11C7 написав:

Дякуємо за ваш внесок, але розділ інші мови стосуються програмування, а не мови дописів.

Хочете сказати, що автоіт не мова програмування?

0xDADA11C7 написав:

Окрім того редагувати код проекта для передачі даних це вершина індусії, останні залишки якої подолали в 70-х роках, коли остаточно відмовилися від перфокарт в якості пристрою введення невеликої кількості даних, а замість них підключили термінал.

Не питання, зараз зроблю.

4

Re: [AutoIt3, Source] LifeTimeVisual by Chemist

Хочу сказати що заголовок бажано писати українською, бо це схоже а) на порушення правил, що вдвічі гірше коли це робить модератор б) пиху, я англієць а ви хахли в) знущання над англійською. Я звертаю увагу на це, бо завтра узбек (гордість української айти індустрії Анвар Азізов) по-своєму напише тут.

5

Re: [AutoIt3, Source] LifeTimeVisual by Chemist

В чому суть програми?

6

Re: [AutoIt3, Source] LifeTimeVisual by Chemist

Візуалізація часу, який залишився  :D Деякі люди краще розуміють візуалізації, а не сухі цифри.

7

Re: [AutoIt3, Source] LifeTimeVisual by Chemist

0xDADA11C7 написав:

Візуалізація часу, який залишився  :D Деякі люди краще розуміють візуалізації, а не сухі цифри.

Це я уловив. А от формулу, по якій вона обчислюється, точніше звідки вона випливає, ніяк уловити не можу.

Подякували: VTrim1

8

Re: [AutoIt3, Source] LifeTimeVisual by Chemist

quez написав:
0xDADA11C7 написав:

Візуалізація часу, який залишився  :D Деякі люди краще розуміють візуалізації, а не сухі цифри.

Це я уловив. А от формулу, по якій вона обчислюється, точніше звідки вона випливає, ніяк уловити не можу.

Прихований текст

Він свою вивів

9

Re: [AutoIt3, Source] LifeTimeVisual by Chemist

quez написав:

В чому суть програми?

Ви статтю читали, на яку я дав посилання?

10

Re: [AutoIt3, Source] LifeTimeVisual by Chemist

0xDADA11C7, переробив згідно Ваших зауважень.
+ бінарник на додачу.
Стосовно назви теми англійською. Це назва програмного продукту, тому так лишаю.

Подякували: 0xDADA11C71

11

Re: [AutoIt3, Source] LifeTimeVisual by Chemist

Гг, я теж думав про скрипт, правда на JavaScript, якийсь собі memento_mori.js, щоб там окрім всього іншого змінювалась кількість секунд/часток відсотка які залишились до оцінюваного кінця. І дівчину з косою на фоні.

Хоча психологи кажуть, що якщо таку діаграму роздрукувати і регулярно викреслювати час що минув, це дасть кращі результати. :)

12

Re: [AutoIt3, Source] LifeTimeVisual by Chemist

Питання щодо часу, який лишився. Ви ж розумієте, що день життя в 20-30 років можна використати продуктивніше, ніж у 60-70? Часу ніби й багато лишається, а на практиці доведеться відкинути пару десятиліть.

13

Re: [AutoIt3, Source] LifeTimeVisual by Chemist

P.Y. написав:

Питання щодо часу, який лишився. Ви ж розумієте, що день життя в 20-30 років можна використати продуктивніше, ніж у 60-70? Часу ніби й багато лишається, а на практиці доведеться відкинути пару десятиліть.

Ви теж не враховуєте, те що щоб Вам зробити якісь речі в 20 років, коли Ви ще молодий і не знаєте куди іти і до кого звертатись, і зробити ті самі речі в 50 років (коли в Вас повна телефонна книга контактів, і все вирішити можна лиш зробивши кілька дзвінків потрібним людям) - збалансовують наведену вище нерівність.

14

Re: [AutoIt3, Source] LifeTimeVisual by Chemist

bunyk написав:

Гг, я теж думав про скрипт, правда на JavaScript, якийсь собі memento_mori.js, щоб там окрім всього іншого змінювалась кількість секунд/часток відсотка які залишились до оцінюваного кінця. І дівчину з косою на фоні.

Хоча психологи кажуть, що якщо таку діаграму роздрукувати і регулярно викреслювати час що минув, це дасть кращі результати. :)

Мабуть перепишу на JS це =) Трохи згодом. Так аудиторія куди ширше.
А як Ви вважаєте, стосовно цілей, що пишуться на листочку і ті, що пишуться в якийсь ToDoList, чи є велика різниця з психологічної точки зору?