Anasayfa
Rastgele
Oturum aç
Ayarlar
Sanarşiv hakkında
Sorumluluk reddi
Ara
"
Modül:Wikidata/number
" sayfasını değiştirmektesiniz
Uyarı:
Oturum açmadınız. Bir düzenleme yaptığınızda, sizin için geçici bir hesap oluşturulur.
Daha fazla bilgi
. Bu hesabın süresi dolduğunda bildirimler almaya devam etmek ve diğer özelliklere erişmek için
oturum açın
ya da
hesap oluşturun
.
Anti spam denetimi. Bunu
doldurmayın
!
local p = {} function p.formatVisualMagnitude ( context, options ) if ( not context ) then error( 'context not specified' ); end; if ( not options ) then error( 'options not specified' ); end; min = context.selectClaims( options, 'P1215[P1227:Q76596947][rank:normal,rank:preferred]' ) max = context.selectClaims( options, 'P1215[P1227:Q76596417][rank:normal,rank:preferred]' ) if ( not min or not max) then return context.formatPropertyDefault( context, options ) end local lang = mw.language.getContentLanguage(); for _, claim1 in ipairs(min) do for _, claim2 in ipairs(max) do return lang:formatNum(tonumber(claim1.mainsnak.datavalue.value.amount)) .. ' − ' .. lang:formatNum(tonumber(claim2.mainsnak.datavalue.value.amount)) end end end function p.formatColorIndex( context, options ) if ( not context ) then error( 'context not specified' ); end; if ( not options ) then error( 'options not specified' ); end; if ( options.property ) then claims = context.selectClaims( options, options.property .. '[rank:normal,rank:preferred]' ); end if ( claims ) then return context.formatPropertyDefault( context, options ) end b = context.selectClaims( options, 'P1215[P1227:Q6746395][rank:normal,rank:preferred]' ) if ( not b ) then return end if string.find( options.property, 'Q17773035' ) then m1 = context.selectClaims( options, 'P1215[P1227:Q15977921][rank:normal,rank:preferred]' ) m2 = b if ( not m1 ) then return end else m1 = b m2 = context.selectClaims( options, 'P1215[P1227:Q4892529][rank:normal,rank:preferred]' ) if ( not m2 ) then return end end for _, claim1 in ipairs(m1) do for _, claim2 in ipairs(m2) do newClaim = { mainsnak = { snaktype = 'value', datavalue = { type = 'quantity', value = { unit = '1', amount = claim1.mainsnak.datavalue.value.amount - claim2.mainsnak.datavalue.value.amount }}}} return context.formatStatementDefault( context, options, newClaim ) end end end function p.formatPropertyWithMostRecentClaimAndIndicator( context, options ) if ( not context ) then error( 'context not specified' ); end; if ( not options ) then error( 'options not specified' ); end; if ( not options.entity ) then error( 'options.entity missing' ); end; local claims; if options.property then claims = context.selectClaims( options, options.property .. '[rank:normal,rank:preferred]' ); end if claims == nil then return '' end local maxTimestamp = nil; local mostRecentClaim; for i, claim in ipairs(claims) do if (claim.qualifiers and claim.qualifiers.P585) then local timestamp = context.parseTimeFromSnak( claim.qualifiers.P585[1] ); if timestamp ~= nil and ( maxTimestamp == nil or maxTimestamp < timestamp ) then maxTimestamp = timestamp; mostRecentClaim = claim end end end if (not mostRecentClaim) then return context.formatPropertyDefault( context, options ) end local out = context.formatStatement( options, mostRecentClaim ) if out ~= '' then local secondMostRecentTimestamp = 0; local secondMostRecentValue = 0; for i, claim in ipairs(claims) do if (claim.qualifiers and claim.qualifiers.P585) then -- обрабатываем только claims с указанным P585 local timestamp = context.parseTimeFromSnak( claim.qualifiers.P585[1] ) if (timestamp ~= nil and secondMostRecentTimestamp < timestamp and maxTimestamp > timestamp) then secondMostRecentTimestamp = timestamp secondMostRecentValue = tonumber( claim.mainsnak.datavalue.value.amount ) end end end if options.before then out = options.before .. out end if options.after then out = out .. options.after end end return out end function p.formatQuantityWithDateClaim( context, options, statement ) local snak = context.formatSnak( options, statement.mainsnak ) if not snak then return '' end --Date if ( statement.qualifiers and statement.qualifiers.P585 ) then snak = snak .. ' (' .. context.formatSnak( options, statement.qualifiers.P585[1] ) .. ')' end --References if ( options.references ) then snak = snak .. context.formatRefs( options, statement ); end return snak end function p.formatDMS( context, options, value ) if not value.amount then return value end if options and options.unit == '-' then return value.amount end local prefix = "+" if tonumber( value.amount ) < 0 then prefix = "−" end return p.formatAngle ( math.abs( tonumber( value.amount ) ), string.len( value.amount ) - string.find( value.amount, '.', 1, true ) - 5, prefix .. "%s° %02d′ %s″") end function p.formatRA( context, options, value ) if not value.amount then return value end if options and options.unit == '-' then return value.amount end return p.formatAngle (tonumber( value.amount ) / 15, string.len( value.amount ) - string.find( value.amount, '.', 1, true ) - 4, "%s<sup>s</sup> %02d<sup>d</sup> %s<sup>s</sup>") end function p.formatAngle ( angle, sig, format ) local d, angle = math.modf( angle ) local m, angle = math.modf( angle * 60 ) local mult = 10 ^ sig; local s = math.floor( angle * 60 * mult + 0.5 ) / mult; local lang = mw.language.getContentLanguage(); return string.format( format, d, m, lang:formatNum( s ) ) end return p
Özet:
Sanarşiv web sitesine yapılan tüm katkıların diğer katılımcılar tarafından düzenlenebileceğini, değiştirilebileceğini veya kaldırılabileceğini lütfen unutmayın. Yazınızın acımasızca düzenlenmesini istemiyorsanız, buraya göndermeyin.
Ayrıca, bunu kendiniz yazdığınızı veya herkese açık bir alandan veya benzeri ücretsiz bir kaynaktan kopyaladığınıza söz veriyorsunuz (ayrıntılar için
Sanarşiv:Telif hakları
sayfasına bakın).
Telif hakkıyla korunan eseri izinsiz göndermeyin!
İptal
Değişiklik yardımı
(yeni pencerede açılır)
Bu sayfada yer alan sayfa:
Modül:Wikidata/number/belge
(
değiştir
)