04.04.2013, 23:18
|
Профессор
|
|
Регистрация: 11.04.2012
Сообщений: 255
|
|
Функция для перевода размера из байтов в понятный для человека формат
/**
* Возвращает размер в байтах в понятном для человека формате.
*
* @author [email]tz4678@gmail.com[/email]
* @param size размер в байтах, целое число
* @param std стандарт, 'SI' | 'IEC'
* @return string
*/
function formatSize(size, std) {
if (std) std = std.toLowerCase();
var i = 0,
base = std == 'si' ? 1000 : 1024,
prefixes = ' KMGTPEZY';
if (size < 1) {
return 0;
}
else if (size >= base) {
i = Math.floor( Math.log(size) / Math.log(base) );
if (i >= prefixes.length) return 'N/A';
size = ( size / Math.pow(base, i) ).toFixed(2) * 1 + ' ';
}
return size + prefixes[i] + ( std == 'iec' && i ? 'i' : '' ) + 'B';
}
Примеры:
formatSize(1234567890)
"1.15 GB"
formatSize(1234567890, 'iec')
"1.15 GiB"
formatSize(1234567890, 'si')
"1.23 GB"
Последний раз редактировалось Антон Крамолов, 04.04.2013 в 23:21.
|
|
05.04.2013, 14:44
|
Профессор
|
|
Регистрация: 11.04.2012
Сообщений: 255
|
|
Тож моё
function pluralize(count, base, ending1, ending2, ending3) { if (ending3 === undefined) { base += count == 1? ending1 : ending2; } else { var _ = count % 100 > 20 ? count % 10 : count; base += _ == 0 || _ > 4 ? ending3 : _ > 1 ? ending2 : ending1; } return count + ' ' + base; }
undefined
pluralize(0, 'comment', '', 's')
"0 comments"
pluralize(1, 'comment', '', 's')
"1 comment"
pluralize(3, 'comment', '', 's')
"3 comments"
pluralize(1, 'wol', 'f', 'ves')
"1 wolf"
pluralize(2, 'wol', 'f', 'ves')
"2 wolves"
pluralize(1, 'волк', '', 'а', 'ов') + ' и ' + pluralize(7, 'козл', 'енок', 'енка', 'ят')
"1 волк и 7 козлят"
pluralize(1, 'робот', '', 'а', 'ов')
"1 робот"
pluralize(113, 'робот', '', 'а', 'ов')
"113 роботов"
pluralize(244, 'робот', '', 'а', 'ов')
"244 робота"
pluralize(576, 'робот', '', 'а', 'ов')
"576 роботов"
|
|
05.04.2013, 15:38
|
Профессор
|
|
Регистрация: 11.04.2012
Сообщений: 255
|
|
/**
* Склоняет слово в зависимости от количества.
*
* @param count количество
* @param base основа слова
* @param ending1 окончание для ед.ч.
* @param ending2 окончание для мн.ч.
* @param ending3 еще одно окончание для мн.ч., если не задано, то слово
* склоняется как в английском
* @return string
*/
function pluralize(count, base, ending1, ending2, ending3) {
base = count + ' ' + base;
if (ending3 === undefined) {
return base + ( count == 1? ending1 : ending2 );
}
count = count % 100;
count = count > 20 ? count % 10 : count;
return base + ( count == 0 || count > 4 ? ending3 : count > 1 ? ending2 : ending1 );
}
var i = 99;
while (i) {
var qt = pluralize(i, 'бутыл', 'ка', 'ки', 'ок');
console.log( qt + ' пива на стене\n' + qt + ' бутылок пива!\nВозьми одну, пусти по кругу\n' + pluralize(--i, 'бутыл', 'ка', 'ки', 'ок') + ' пива на стене!\n\n');
}
99 бутылок пива на стене
99 бутылок бутылок пива!
Возьми одну, пусти по кругу
98 бутылок пива на стене!
98 бутылок пива на стене
98 бутылок бутылок пива!
Возьми одну, пусти по кругу
97 бутылок пива на стене!
97 бутылок пива на стене
97 бутылок бутылок пива!
Возьми одну, пусти по кругу
96 бутылок пива на стене!
96 бутылок пива на стене
96 бутылок бутылок пива!
Возьми одну, пусти по кругу
95 бутылок пива на стене!
95 бутылок пива на стене
95 бутылок бутылок пива!
Возьми одну, пусти по кругу
94 бутылки пива на стене!
94 бутылки пива на стене
94 бутылки бутылок пива!
Возьми одну, пусти по кругу
93 бутылки пива на стене!
93 бутылки пива на стене
93 бутылки бутылок пива!
Возьми одну, пусти по кругу
92 бутылки пива на стене!
92 бутылки пива на стене
92 бутылки бутылок пива!
Возьми одну, пусти по кругу
91 бутылка пива на стене!
91 бутылка пива на стене
91 бутылка бутылок пива!
Возьми одну, пусти по кругу
90 бутылок пива на стене!
90 бутылок пива на стене
90 бутылок бутылок пива!
Возьми одну, пусти по кругу
89 бутылок пива на стене!
89 бутылок пива на стене
89 бутылок бутылок пива!
Возьми одну, пусти по кругу
88 бутылок пива на стене!
88 бутылок пива на стене
88 бутылок бутылок пива!
Возьми одну, пусти по кругу
87 бутылок пива на стене!
87 бутылок пива на стене
87 бутылок бутылок пива!
Возьми одну, пусти по кругу
86 бутылок пива на стене!
86 бутылок пива на стене
86 бутылок бутылок пива!
Возьми одну, пусти по кругу
85 бутылок пива на стене!
85 бутылок пива на стене
85 бутылок бутылок пива!
Возьми одну, пусти по кругу
84 бутылки пива на стене!
84 бутылки пива на стене
84 бутылки бутылок пива!
Возьми одну, пусти по кругу
83 бутылки пива на стене!
83 бутылки пива на стене
83 бутылки бутылок пива!
Возьми одну, пусти по кругу
82 бутылки пива на стене!
82 бутылки пива на стене
82 бутылки бутылок пива!
Возьми одну, пусти по кругу
81 бутылка пива на стене!
81 бутылка пива на стене
81 бутылка бутылок пива!
Возьми одну, пусти по кругу
80 бутылок пива на стене!
80 бутылок пива на стене
80 бутылок бутылок пива!
Возьми одну, пусти по кругу
79 бутылок пива на стене!
79 бутылок пива на стене
79 бутылок бутылок пива!
Возьми одну, пусти по кругу
78 бутылок пива на стене!
78 бутылок пива на стене
78 бутылок бутылок пива!
Возьми одну, пусти по кругу
77 бутылок пива на стене!
77 бутылок пива на стене
77 бутылок бутылок пива!
Возьми одну, пусти по кругу
76 бутылок пива на стене!
76 бутылок пива на стене
76 бутылок бутылок пива!
Возьми одну, пусти по кругу
75 бутылок пива на стене!
75 бутылок пива на стене
75 бутылок бутылок пива!
Возьми одну, пусти по кругу
74 бутылки пива на стене!
74 бутылки пива на стене
74 бутылки бутылок пива!
Возьми одну, пусти по кругу
73 бутылки пива на стене!
73 бутылки пива на стене
73 бутылки бутылок пива!
Возьми одну, пусти по кругу
72 бутылки пива на стене!
72 бутылки пива на стене
72 бутылки бутылок пива!
Возьми одну, пусти по кругу
71 бутылка пива на стене!
71 бутылка пива на стене
71 бутылка бутылок пива!
Возьми одну, пусти по кругу
70 бутылок пива на стене!
70 бутылок пива на стене
70 бутылок бутылок пива!
Возьми одну, пусти по кругу
69 бутылок пива на стене!
69 бутылок пива на стене
69 бутылок бутылок пива!
Возьми одну, пусти по кругу
68 бутылок пива на стене!
68 бутылок пива на стене
68 бутылок бутылок пива!
Возьми одну, пусти по кругу
67 бутылок пива на стене!
67 бутылок пива на стене
67 бутылок бутылок пива!
Возьми одну, пусти по кругу
66 бутылок пива на стене!
66 бутылок пива на стене
66 бутылок бутылок пива!
Возьми одну, пусти по кругу
65 бутылок пива на стене!
65 бутылок пива на стене
65 бутылок бутылок пива!
Возьми одну, пусти по кругу
64 бутылки пива на стене!
64 бутылки пива на стене
64 бутылки бутылок пива!
Возьми одну, пусти по кругу
63 бутылки пива на стене!
63 бутылки пива на стене
63 бутылки бутылок пива!
Возьми одну, пусти по кругу
62 бутылки пива на стене!
62 бутылки пива на стене
62 бутылки бутылок пива!
Возьми одну, пусти по кругу
61 бутылка пива на стене!
61 бутылка пива на стене
61 бутылка бутылок пива!
Возьми одну, пусти по кругу
60 бутылок пива на стене!
60 бутылок пива на стене
60 бутылок бутылок пива!
Возьми одну, пусти по кругу
59 бутылок пива на стене!
59 бутылок пива на стене
59 бутылок бутылок пива!
Возьми одну, пусти по кругу
58 бутылок пива на стене!
58 бутылок пива на стене
58 бутылок бутылок пива!
Возьми одну, пусти по кругу
57 бутылок пива на стене!
57 бутылок пива на стене
57 бутылок бутылок пива!
Возьми одну, пусти по кругу
56 бутылок пива на стене!
56 бутылок пива на стене
56 бутылок бутылок пива!
Возьми одну, пусти по кругу
55 бутылок пива на стене!
55 бутылок пива на стене
55 бутылок бутылок пива!
Возьми одну, пусти по кругу
54 бутылки пива на стене!
54 бутылки пива на стене
54 бутылки бутылок пива!
Возьми одну, пусти по кругу
53 бутылки пива на стене!
53 бутылки пива на стене
53 бутылки бутылок пива!
Возьми одну, пусти по кругу
52 бутылки пива на стене!
52 бутылки пива на стене
52 бутылки бутылок пива!
Возьми одну, пусти по кругу
51 бутылка пива на стене!
51 бутылка пива на стене
51 бутылка бутылок пива!
Возьми одну, пусти по кругу
50 бутылок пива на стене!
50 бутылок пива на стене
50 бутылок бутылок пива!
Возьми одну, пусти по кругу
49 бутылок пива на стене!
49 бутылок пива на стене
49 бутылок бутылок пива!
Возьми одну, пусти по кругу
48 бутылок пива на стене!
48 бутылок пива на стене
48 бутылок бутылок пива!
Возьми одну, пусти по кругу
47 бутылок пива на стене!
47 бутылок пива на стене
47 бутылок бутылок пива!
Возьми одну, пусти по кругу
46 бутылок пива на стене!
46 бутылок пива на стене
46 бутылок бутылок пива!
Возьми одну, пусти по кругу
45 бутылок пива на стене!
45 бутылок пива на стене
45 бутылок бутылок пива!
Возьми одну, пусти по кругу
44 бутылки пива на стене!
44 бутылки пива на стене
44 бутылки бутылок пива!
Возьми одну, пусти по кругу
43 бутылки пива на стене!
43 бутылки пива на стене
43 бутылки бутылок пива!
Возьми одну, пусти по кругу
42 бутылки пива на стене!
42 бутылки пива на стене
42 бутылки бутылок пива!
Возьми одну, пусти по кругу
41 бутылка пива на стене!
...
5 бутылок пива на стене
5 бутылок бутылок пива!
Возьми одну, пусти по кругу
4 бутылки пива на стене!
4 бутылки пива на стене
4 бутылки бутылок пива!
Возьми одну, пусти по кругу
3 бутылки пива на стене!
3 бутылки пива на стене
3 бутылки бутылок пива!
Возьми одну, пусти по кругу
2 бутылки пива на стене!
2 бутылки пива на стене
2 бутылки бутылок пива!
Возьми одну, пусти по кругу
1 бутылка пива на стене!
1 бутылка пива на стене
1 бутылка бутылок пива!
Возьми одну, пусти по кругу
0 бутылок пива на стене!
|
|
05.04.2013, 16:40
|
Профессор
|
|
Регистрация: 11.04.2012
Сообщений: 255
|
|
function timeRemaining(ms) {
var year = 365.25,
day = 24,
hour = 60,
minute = hour,
second = 1000,
years = ms / ( year * day * hour * minute * second ),
days = years % 1 * year, hours = days % 1 * day,
minutes = hours % 1 * hour,
seconds = minutes % 1 * minute;
return ( years >= 1
? pluralize( Math.floor(years), '', 'год', 'года', 'лет' )
+ ' ' : '' ) + ( days >= 1
? pluralize( Math.floor(days), 'д', 'ень', 'ня', 'ней' )
+ ' ' : '' ) + ( hours >= 1
? pluralize( Math.floor(hours), 'час', '', 'а', 'ов' ) + ' ' : '' )
+ ( minutes >= 1
? pluralize( Math.floor(minutes), 'минут', 'у', 'ы', '' ) + ' ' : '' )
+ pluralize( Math.round(seconds), 'секунд', 'у', 'ы', '' );
}
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
<script src="js/common.js"></script>
</head>
<body style="font: 14px/1.5em Arial">
Скачивание начнется через <span id="remaining"></span>
</body>
<script>
var remaining = document.getElementById('remaining'),
time = 150000,
step = 999,
interval = setInterval(function() {
if (time < 0) {
alert('Время вышло');
return clearInterval(interval);
}
remaining.innerHTML = timeRemaining(time);
time -= step;
}, step);
remaining.innerHTML = timeRemaining(time);
</script>
</html>
|
|
05.04.2013, 16:42
|
Профессор
|
|
Регистрация: 11.04.2012
Сообщений: 255
|
|
|
|
|
|