time

Mattepuffo's logo
Identificare l'ultimo avvio in Windows

Identificare l'ultimo avvio in Windows

Piccola guida su come identificare quando è stato eseguito l'ultimo avvio su Windows.

Se usiamo molto la sospensione / ibernazione, può essere comodo saperlo.

Abbiamo almeno due modi.

Quello più semplice è guardando nel Task Manager (Gestione attività).

Mattepuffo's logo
C# Timer

C# Timer

Tempo fa vi parlai di come creare un countdown in C#.

In quel caso usammo un Windows Form e un controllo Timer.

Adesso invece vediamo come usare la classe Timer dentro a un progetto console.

In pratica il mio programma svolge determinate operazioni, alla fine delle quali deve aspettare 5 secondi prima di chiudere la finestra di terminale.

Mattepuffo's logo
Calcolare data e ora corrente in C++

Calcolare data e ora corrente in C++

Vediamo oggi una piccola funzione per calcolare data e ora corrente in C++.

Per farlo ci bastano poche righe di codice e la libreria ctime.

Da questa libreria prenderemo:

  • la funzione time(), che ritorna un oggetto di tipo time_t e in pratica legge l'ora corrente come numero di secondi trascorsi dal 1° Gennaio 1970
  • la funzione asctime(), che converte l'orario in stringa
  • la funzione localtime(), che contiente l'ora corrente suddivisa in diverse parti (giorni, ore, ecc)
  • la funzione strftime(), per formattare l'output

Quindi la nostra funzione sarà qualcosa del genere:

#include <iostream>
#include <ctime>

using namespace std;

int main() {
    time_t currentTime;
    time(&currentTime);
    cout << asctime(localtime(&currentTime)) << endl;
    return 0;
}

Creiamo una variabile di tipo time_t.

Poi con la funzione time() leggiamo l'ora corrente e la salviamo nella varibile currentTime.

Poi stampiamo l'output usando asctime() per trasformare in stringa l'ora corrente che ci viene restituita dal localtime().

L'ouput sarà una tipo questo:

Wed Dec 12 12:59:09 2012

Non molto ben formattato a dire il vero.

Mattepuffo's logo
Differenza date in PHP

Differenza date in PHP

EDIT in fondo

La gestione del tempo è sempre abbastanza problematica, in qualsiasi linguaggio.

Oggi vediamo un semplice modo per contare la differenza tra due date.

Prima di tutto dovete impostare l'orario nello stesso formato.

Quindi se gli orari li prendete da db controllate in che modo vengono salvati.

Nel caso specifico dobbiamo vedere se una data salvata nel db è anteriore a oggi.

Nel database la data è in formato DATE, e quindi non tiene conto dell'ora.

Inoltre è salvata nel formato Anno-Mese-Giorno.

Quindi prima di tutto ci calcoliamo la data di oggi:

$dateToday = date('Y-m-d');

mantenendo il formato uguale a quello del db.

Mattepuffo's logo
Creare un countdown con C#

Creare un countdown con C#

Oggi vedremo come creare un piccolo cpuntdown con C# e Windows Form.

Create una nuova applcazione Windows Form.
Nella finestra dovete mettere come minimo questi elementi:

  • una TextBox per impostare le ore
  • una TextBox per impostare i minuti
  • una TextBox per impostare i secondi
  • un Button per lo start
  • un Button per la pausa
  • un Button per lo stop
  • una Label per lo scorrere delle ore
  • una Label per lo scorrere dei minuti
  • una Label per lo scorrere dei secondi
  • un oggetto Timer che trovate nel gurppo Componenti; quando lo aggiungete verrà visualizzato nella barra in fondo alla finestra del designer

Inoltre, per fare le cose più carine, i tasti di stop e pausa all'inizio sono disabilitati.

Di volta in volta abiliteremo/disabiliteremo solo i pulsanti che ci servono.

A questo punto nel codice del form pirma di tutto aggiungiamo 4 variabili private:

private int seconds = 0;
private int minutes = 0;
private int hours = 0;
private bool paused;

Penso che non abbiano bisogno di molte spiegazioni.

Poi abbiamo bisogni di un metodo per ogni bottone più uno per controllare l'oggetto Timer.

Cominciamo col metodo del pulsante start:

private void btnStart_Click(object sender, EventArgs e)
        {
            if (paused != true)
            {
                if (txtHr.Text != String.Empty || txtMn.Text != String.Empty || txtSn.Text != String.Empty)
                {
                    try
                    {
                        if (txtHr.Text != String.Empty)
                        {
                            hours = Convert.ToInt32(txtHr.Text);
                        }
                        if (txtMn.Text != String.Empty)
                        {
                            minutes = Convert.ToInt32(txtMn.Text);
                        }
                        if (txtSn.Text != String.Empty)
                        {
                            seconds = Convert.ToInt32(txtSn.Text);
                        }
                        btnStart.Enabled = false;
                        btnPause.Enabled = true;
                        btnStop.Enabled = true;
                        cdTimer.Enabled = true;
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                }
                else
                {
                    MessageBox.Show("Inserire almeno un valore");
                }
            }
            else
            {
                cdTimer.Enabled = true;
                paused = false;
                btnStart.Enabled = false;
                btnPause.Enabled = true;
                btnStop.Enabled = true;
            }
        }

Prima controlliamo se lo stato del Timer è in pausa.

Poi controlliamo che almeno una delle TextBox sia valorizzata.

Se tutto va bene valoriaziamo le variabili int private con i valori delle TextBox e abilitiamo il Timer (cdTimer).

Mattepuffo's logo
Rimuovere la TimeLine di Facebook

Rimuovere la TimeLine di Facebook

Da qualche giorno dovrebbe essere diventata obbligatoria la TimeLine in Facebook.

A me personalmente piace, però c'è anche a chi invece non piace.

Per questi ultimi è possibile ricorrere a un plugin per "levarla".

Il plugin è disponibile su Firefox, Chrome e Internet Explorer.

A breve sarà disponibile anche su Safari.