programming:stardate

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
programming:stardate [2014/04/28 23:44] Giuseppe Di Terlizziprogramming:stardate [2014/08/13 11:20] (current) Giuseppe Di Terlizzi
Line 27: Line 27:
 Come si può notare la differenza è incredibilmente piccola. Come si può notare la differenza è incredibilmente piccola.
 È altrettanto evidente che la formula sopra indicata mal si presta ad un uso istantaneo e può assere meglio esplicitata nella seguente: È altrettanto evidente che la formula sopra indicata mal si presta ad un uso istantaneo e può assere meglio esplicitata nella seguente:
 +
 +{{:programming:stardate_formula.gif?nolink|}}
  
 Nella quale: Nella quale:
Line 49: Line 51:
 <code vb> <code vb>
 <% <%
-data = date() +dim k 
-orario = time()+ 
 +dim sData = date() 
 +dim sOrario = time()
    
-anno = year(data+dim iAnno = year(sData
-annoBase = "2323" +dim iAnnoBase = "2323" 
-giorno = DateDiff("d", "01/01/"annodata+dim iGiorno = DateDiff("d", "01/01/"iAnnosData
-giorniAnno = DateDiff("d", "01/01/"anno, "01/01/"anno + 1) +dim iGiorniAnno = DateDiff("d", "01/01/"iAnno, "01/01/"iAnno + 1) 
-ora = hour(orario+dim iOra = hour(sOrario
-minuti = minute(orario+dim iMinuti = minute(sOrario
-secondi = second(orario)+dim iSecondi = second(sOrario)
    
-anno_normale = "0,00003170979" +dim iAnnoNormale = "0,00003170979" 
-anno_bisestile = "0,00003162315"+dim iAnnoBisestile = "0,00003162315"
    
-if giorniAnno = "365" then +if iGiorniAnno = "365" then 
-     k = anno_normale +  set k = iAnnoNormale 
-elseif giorniAnno = "366" then +elseif iGiorniAnno = "366" then 
-     k = anno_bisestile+  set k = iAnnoBisestile
 end if end if
    
-stardate = (((anno annoBase) + cdbl(giorno giorniAnno)) * 1000) + (((ora * 3600) + (minuti * 60) + secondi) * k)+dim sStardate = (((iAnno iAnnoBase) + cdbl(iGiorno iGiorniAnno)) * 1000) + (((iOra * 3600) + (iMinuti * 60) + iSecondi) * k)
    
-arr_stardate = split(stardate, ","+dim aStardate = split(sStardate, ","
-short_stardate arr_stardate(0) & "." & left(arr_stardate(1), 2)+dim sShortStardate aStardate(0) & "." & left(aStardate(1), 2)
 %> %>
 </code> </code>
Line 89: Line 93:
 Salviamo il codice della formula, all'interno di un file chiamato stardate.asp e includiamolo all'interno della pagina della nostra applicazione ASP, ad esempio:  Salviamo il codice della formula, all'interno di un file chiamato stardate.asp e includiamolo all'interno della pagina della nostra applicazione ASP, ad esempio: 
  
-<code vb>+<code html>
 <!-- #include file = "stardate.asp" --> <!-- #include file = "stardate.asp" -->
 <html> <html>
Line 96: Line 100:
   <head>   <head>
   <body>   <body>
-  Oggi è la data stellare <% response.write short_stardate %>+  Oggi è la data stellare <% response.write sShortStardate %>
   </body>   </body>
 </html> </html>
Line 109: Line 113:
 $data = date("y-m-d"); $data = date("y-m-d");
    
-$anno = date('Y'); +$anno       = date('Y'); 
-$annoBase = "2323"+$annoBase   = 2323; 
-$giorno = (int)(abs(strtotime($data) - strtotime($anno."-01-01")) / (86400)) + 1;+$giorno     = (int)(abs(strtotime($data) - strtotime($anno."-01-01")) / (86400)) + 1;
 $giorniAnno = (int)(abs(strtotime(($anno + 1)."-01-01") - strtotime($anno."-01-01")) / (86400)); $giorniAnno = (int)(abs(strtotime(($anno + 1)."-01-01") - strtotime($anno."-01-01")) / (86400));
-$ora = date('G'); +$ora        = date('G'); 
-$minuti = date('i'); +$minuti     = date('i'); 
-$secondi = date('s');+$secondi    = date('s');
    
-$anno_normale = "0.00003170979";+$anno_normale   = "0.00003170979";
 $anno_bisestile = "0.00003162315"; $anno_bisestile = "0.00003162315";
    
Line 164: Line 168:
 function StarDate() { function StarDate() {
    
-var oggi = new Date();+  var oggi  = new Date(), 
 +      day   = oggi.getDate(), 
 +      month = oggi.getMonth(), 
 +      year  = oggi.getYear();
    
-var day = oggi.getDate(); +  if (year < 1000)
-var month = oggi.getMonth(); +
-var year = oggi.getYear(); +
-  +
-if (year < 1000)+
      var anno = (oggi.getYear() + 1900);      var anno = (oggi.getYear() + 1900);
-else if (year > 1000)+  else if (year > 1000)
      var anno = year;      var anno = year;
    
-var annoBase = "2323"; +  var annoBase = "2323"; 
-var giorno = parseInt((((Date.parse((month + 1) + "/" + day + "/" + anno) - Date.parse("01/01/" + anno))/86400)/1000)+1); +  var giorno = parseInt((((Date.parse((month + 1) + "/" + day + "/" + anno) - Date.parse("01/01/" + anno))/86400)/1000)+1); 
-var giorniAnno = (((Date.parse("01/01/" + (anno + 1)) - Date.parse("01/01/" + anno))/86400)/1000); +  var giorniAnno = (((Date.parse("01/01/" + (anno + 1)) - Date.parse("01/01/" + anno))/86400)/1000); 
-var ora = oggi.getHours(); +  var ora = oggi.getHours(); 
-var minuti = oggi.getMinutes(); +  var minuti = oggi.getMinutes(); 
-var secondi = oggi.getSeconds();+  var secondi = oggi.getSeconds();
    
-var anno_normale = "0.00003170979"; +  var anno_normale   = 0.00003170979, 
-var anno_bisestile = "0.00003162315";+      anno_bisestile = 0.00003162315;
    
-if (giorniAnno == 365)+  if (giorniAnno == 365)
      var k = anno_normale;      var k = anno_normale;
-else if (giorniAnno == 366)+  else if (giorniAnno == 366)
      var k = anno_bisestile;      var k = anno_bisestile;
    
-var stardate = (((anno - annoBase) + (giorno / giorniAnno)) * 1000) + (((ora * 3600) + (minuti * 60) + secondi) * k);+  var stardate = (((anno - annoBase) + (giorno / giorniAnno)) * 1000) + (((ora * 3600) + (minuti * 60) + secondi) * k);
    
-var stardate_string = stardate + '';+  var stardate_string = stardate + '';
    
-var arr_stardate = stardate_string.split("."); +  var arr_stardate = stardate_string.split("."); 
-var short_stardate = arr_stardate[0] + "." + arr_stardate[1].substring(0, 2);+  var short_stardate = arr_stardate[0] + "." + arr_stardate[1].substring(0, 2);
    
-document.getElementById('StarDate').value = (stardate);+  document.getElementById('StarDate').value = (stardate);
    
-setTimeout("StarDate()",1000);+  setTimeout("StarDate()",1000); 
 } }
 </code> </code>
Line 243: Line 247:
  
   * ASP Classic:   * ASP Classic:
-<code vb>stardate2 = "[" & left(short_stardate, 3) & "]" & mid(short_stardate, 4, 10)</code>+<code vb>dim sStardate2 = "[" & left(sShortStardate, 3) & "]" & mid(sShortStardate, 4, 10)</code>
  
   * PHP:   * PHP:
Line 254: Line 258:
  
 <code javascript>document.getElementById('StarDate').value = (stardate2);</code> <code javascript>document.getElementById('StarDate').value = (stardate2);</code>
 +
 +{{tag>programming php javascript asp}}
  • programming/stardate.1398721487.txt.gz
  • Last modified: 10 years ago
  • (external edit)