פארעפענטליכט: שבת נובמבר 05, 2011 8:35 pm
וויפיל אזייגער ס'איז ביי מיר ווילט איר וויסן?
איך האב דאך גארנישט פון ענטפערן, א מינוט ארום וועט דאך אנדערש זיין.
נוץ ענדערש דעם פראגראם, ווען איר פרעגט אים וועט ער אייך ענטפערן מיט קלארע און דייטליכע ווערטער די צייט.
נאט אייך, אין C:
בעפאר פאטאקי פרעגט, כ'נוץ C ווייל פון דעם איז דא די מערסטע קאמפיילערס.
איך האב דאך גארנישט פון ענטפערן, א מינוט ארום וועט דאך אנדערש זיין.
נוץ ענדערש דעם פראגראם, ווען איר פרעגט אים וועט ער אייך ענטפערן מיט קלארע און דייטליכע ווערטער די צייט.
Zeiger
It's almost half past twelve.
נאט אייך, אין C:
- קאוד:
/******************************************************************************
* Zeiger -- display time as sentence.
*
* אוהב חכמה
******************************************************************************/
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <time.h>
static long get_secs (void);
int main (int argc, char *const argv[])
{
static char *const hr[] =
{
"twelve", "one", "two", "three", "four", "five",
"six", "seven", "eight", "nine", "ten", "eleven"
};
static char *const mn[] =
{
"", "five ", "ten ", "a quarter ",
"twenty ", "twenty-five ", "half "
};
static char *const near[] =
{
"nearly ", "almost ", "", "just after ", "after "
};
static char *const up[] =
{
"to ", "", "past "
};
long adj_mins = (get_secs () + 30L) / 60L + 27L;
long hours = (adj_mins / 60L) % 12L;
long minutes = adj_mins % 60L;
long almost = minutes % 5L;
long divisions = (minutes / 5L) - 5L;
long to_past_idx = divisions > 0L ? 1L : 0L;
if (divisions < 0L)
{
divisions = -divisions;
to_past_idx = -1L;
}
++to_past_idx;
printf ("It's %s%s%s%s", near[almost], mn[divisions], up[to_past_idx], hr[hours]);
if (divisions == 0L)
puts (" o'clock.");
else
puts (".");
return 0;
}
static long get_secs (void)
{
time_t sys_time = time (NULL);
struct tm *sys_date = localtime (&sys_time);
return ((sys_date->tm_hour * 60L) + sys_date->tm_min) * 60L + sys_date->tm_sec;
}
בעפאר פאטאקי פרעגט, כ'נוץ C ווייל פון דעם איז דא די מערסטע קאמפיילערס.
