JavaScript >> Delphi

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by t04, 31 May 2007.

  1. t04

    t04 Elder - Старейшина

    Joined:
    10 Jan 2007
    Messages:
    137
    Likes Received:
    40
    Reputations:
    8
    Доброго впемени суток ;)
    Я пишу программу и столкнулся с проблемой,
    нашел исходники на java а разобраться в нём что то не смог.
    Помогите Plz перевести из java в Delphi.
    Вот собсна исходник на java который нужно переписать под Delphi:

    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <!-- saved from http://astroclub.biz -->
    <HTML><HEAD><TITLE>Текущее среднее звёздное время</TITLE>
    
    <BODY onselectstart="return false" bgColor=#000066 onload=starClock()>
    <script language=JavaScript>
    <!-- 
    function starClock() 
    {
    
    var sidTimer = new Date();
    
    var year = sidTimer.getYear(); 
    var month = sidTimer.getMonth()+1;
    var date = sidTimer.getDate(); 
    var hour = sidTimer.getHours(); 
    var minute = sidTimer.getMinutes(); 
    var second = sidTimer.getSeconds();
    var zone = -sidTimer.getTimezoneOffset()/60;/*автополучение временной зоны с учётом летнего времени*/
    
    var uhour = hour - zone;
    
    var long = 35.167; /*долгота в градусах места, для которого вычисляется текущее среднее звёздное время*/
    
    var lt = hour + minute/60 + second/3600;
    
    
    if (year<1900) year=year+1900
    if (month<=2) {month=month+12; year=year-1}
    
    var A = Math.floor(year/100);
    var B = 2 - A + Math.floor(A/4);
    
    var jdn = Math.floor(365.25*(year+4716)) + Math.floor(30.6001*(month+1)) + date +B - 1524.5 - zone/24;
    var jd = jdn + (hour + minute/60 + second/3600)/24;
    
    var T = (jdn - 2451545.0)/36525;
    
    var sidtn = 280.46061837 + 360.98564736629*(jdn - 2451545.0) + 0.000387933*T*T - T*T*T/38710000;
    sidtn = (sidtn)%360;
    if (sidtn < 0) {sidtn = sidtn +360;}
    sidtn = sidtn/15;
    
    
    var st = sidtn + lt*1.00273790935 + long/15;
    st = (st + 24)%24;
    
    var sth = Math.floor(st);
    var stm = (st - sth)*60;
    var stmo = Math.floor(stm);
    var sts = (stm-stmo)*60;
    sts = Math.floor(sts);
    
    if (sth < 10) {sth = "0" + sth;}
    if (stmo < 10) {stmo = "0" + stmo;}
    if (sts < 10) {sts = "0" + sts;}
    
    var stt = sth + "h" +stmo + "m" +sts +"s";
    document.sidtimer.startm.value = stt;
    
    if (hour < 10) {hour = "0" + hour;}
    if (minute < 10) {minute = "0" + minute;}
    if (second < 10) {second = "0" + second;}
    
    var sysdate = hour + ":" + minute + ":" + second;
    document.sidtimer.stime.value = sysdate;
    
    if (hour < 3) {uhour = uhour + 24;}
    if (uhour > 23) {uhour = uhour - 24;}
    if (uhour < 10) {uhour = "0" + uhour;}
    
    var ut = uhour + ":" + minute + ":" + second;
    document.sidtimer.utime.value = ut;
    
    var jd1 = Math.floor(jd); 
    var jd2 = (jd - jd1)*100000;
    jd2 = Math.floor(jd2); 
    
    document.sidtimer.yuldate.value = jd1 + "." + jd2;
    
    
    window.setTimeout("starClock()", 1000)
    }
    
    // -->
    </SCRIPT>
    
    <LINK rel="STYLESHEET" href="css/styles.css">
    
    <FORM name=sidtimer>
    <TABLE border=0>
    <CAPTION> 
    <span class=h2>Текущее местное и среднее звёздное время для Запорожья (ш: 47°&nbsp;48' д: 35h 10m)</span></CAPTION>
    <TBODY>
    <TR> 
    <TD> 
    <INPUT size=14 name=stime>
    </TD>
    <TD><span class=h1>Локальное время (LT)</span></TD>
    </TR>
    <TR> 
    <TD> 
    <INPUT size=14 name=utime>
    </TD>
    <TD><span class=h2>Всемирное время (UT)</span></TD>
    </TR>
    <TR> 
    <TD> 
    <INPUT size=14 name=yuldate>
    </TD>
    <TD><span class=h3>Юлианская дата (JD)</span></TD>
    </TR>
    <TR> 
    <TD> 
    <INPUT size=14 name=startm>
    </TD>
    <TD><span class=h6>Среднее звездное время (ST)</span></TD>
    </TR>
    </TBODY> 
    </TABLE>
    </FORM></BODY></HTML>
    <STYLE type="text/css">
    <!--


    Code:
    FORM {
    font-family: "Verdana", "Verdana", "Tahoma", "Arial", "Helvetica";
    font-size: 7pt;
    font-weight : normal;
    color: #080000;
    text-decoration: none;
    background-color: #000066;
    background: #000066;
    }
    
    BODY {
    font-weight : normal;
    color: #00FFFF;
    text-decoration: none;
    background-color: #000066;
    background: #000066;
    }
    
    
    span.H1 {
    font-family: "Verdana", "Verdana", "Tahoma", "Arial", "Helvetica";
    font-size: 14pt;
    font-weight : normal;
    color: #FFFFCC;
    text-decoration: none;
    }
    
    span.H2 {
    font-family: "Verdana", "Verdana", "Tahoma", "Arial", "Helvetica";
    font-size: 12pt;
    font-weight : normal;
    color: #FFCC00;
    text-decoration: none;
    }
    
    span.H3 {
    font-family: "MS Sans Serif", "Verdana", "Tahoma", "Arial", "Helvetica";
    font-size: 12pt;
    font-weight : bold;
    color: #FFCC00;
    text-decoration: none;
    }
    
    span.H4 {
    font-family: "MS Sans Serif", "Verdana", "Tahoma", "Arial", "Helvetica";
    font-size: 12pt;
    font-weight : normal;
    color: #FFFFCC;
    text-decoration: none;
    }
    
    span.H5 {
    font-family: "MS Sans Serif", "Verdana", "Tahoma", "Arial", "Helvetica";
    font-size: 12pt;
    font-weight : normal;
    color: #CCFFCC;
    text-decoration: none;
    }
    
    span.H6 {
    font-family: "MS Sans Serif", "Verdana", "Tahoma", "Arial", "Helvetica";
    font-size: 10pt;
    font-weight : normal;
    color: #00FF66;
    text-decoration: none;
    }
    
    INPUT {
    font-family: "Verdana", "Verdana", "Tahoma", "Arial", "Helvetica";
    font-size: 10pt;
    font-weight : normal;
    color: #FFFFFF;
    text-decoration: none;
    background-color: #000066;
    background: #000066;
    } 
    
    -->
    </STYLE>
     
  2. Joker-jar

    Joker-jar Elder - Старейшина

    Joined:
    11 Mar 2007
    Messages:
    581
    Likes Received:
    205
    Reputations:
    37
    Смысл переводить? Хочешь добиться такого функционала в Делфи, юзай таймер и функции Date, Time, DateToStr из SysUtils.
     
  3. NetMan

    NetMan Elder - Старейшина

    Joined:
    9 Feb 2004
    Messages:
    121
    Likes Received:
    37
    Reputations:
    34
    Проще будет на C++ перевести, т.к. синтаксис похожий...
     
  4. t04

    t04 Elder - Старейшина

    Joined:
    10 Jan 2007
    Messages:
    137
    Likes Received:
    40
    Reputations:
    8
    половину перевел, но затруднения вот тут:
    sidtn = (sidtn)%360;
    Что значит %?

    и я так понял что
    stt = sth + "h" +stmo + "m" +sts +"s";<=>stt := sth + 'h' +stmo + 'm' +sts +'s';
    Верно?
     
  5. Joker-jar

    Joker-jar Elder - Старейшина

    Joined:
    11 Mar 2007
    Messages:
    581
    Likes Received:
    205
    Reputations:
    37
    % это остаток от деления
     
  6. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    Тут нету джавы.
     
    1 person likes this.
  7. nc.STRIEM

    nc.STRIEM Members of Antichat

    Joined:
    5 Apr 2006
    Messages:
    1,036
    Likes Received:
    347
    Reputations:
    292
    +1
    пора уже различать, Java и JavaScript
     
  8. _Great_

    _Great_ Elder - Старейшина

    Joined:
    27 Dec 2005
    Messages:
    2,032
    Likes Received:
    1,119
    Reputations:
    1,139
    название топика отредактировано
    nerezus, nc.STRIEM +1